Changeset 90503 in vbox for trunk/include
- Timestamp:
- Aug 3, 2021 9:22:13 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 146107
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VMMDevTesting.h
r90467 r90503 93 93 * Writing configures counter action by a thread taking the lock to trigger 94 94 * contention: 95 * - Bits 19-0 is the lock hold time in microseconds. Zero disables it. 96 * - Bit 31 make the thread poke the EMT(s) prior to releasing the lock. 97 * - Bits 30-20 are reserved and must be zero. */ 98 #define VMMDEV_TESTING_IOPORT_LOCKED (VMMDEV_TESTING_IOPORT_BASE + 6) 95 * - bits 15:0: Number of microseconds thread should hold lock. 96 * - bits 31:16: Number of microseconds thread should wait before locking 97 * again. */ 98 #define VMMDEV_TESTING_IOPORT_LOCKED_LO (VMMDEV_TESTING_IOPORT_BASE + 6) 99 /** Take the VMMDev lock in arrival context and return - 1,2,4 RW. 100 * Writing configures counter action by a thread taking the lock to trigger 101 * contention: 102 * - bits 19:0: Number of kilo (1024) ticks the EMT should hold lock. 103 * - bits 25:20: Reserved, must be zero. 104 * - bit 26: Thread takes lock in shared mode when set, exclusive when clear. 105 * - bit 27: EMT takes lock in shared mode when set, exclusive when clear. 106 * - bit 28: Use read/write critical section when set, device section if clear. 107 * - bit 29: EMT passes VINF_SUCCESS as rcBusy when set. 108 * - bit 30: Makes thread poke all EMTs before release lock. 109 * - bit 31: Enables the thread. */ 110 #define VMMDEV_TESTING_IOPORT_LOCKED_HI (VMMDEV_TESTING_IOPORT_BASE + 7) 99 111 100 112 /** @name Commands. … … 163 175 #define VMMDEV_TESTING_NOP_RET UINT32_C(0x64726962) /* bird */ 164 176 165 /** @name Lo cked Control dword177 /** @name Low and High Locking Control Dwords 166 178 * @{ */ 167 /** Locked Control: Lock hold interval in microseconds. */ 168 #define VMMDEV_TESTING_LOCKED_HOLD_MASK UINT32_C(0x00003fff) 169 /** Locked Control: Wait time in microseconds between locking attempts. */ 170 #define VMMDEV_TESTING_LOCKED_WAIT_MASK UINT32_C(0x0fffc000) 171 /** Locked Control: Wait time shift count. */ 172 #define VMMDEV_TESTING_LOCKED_WAIT_SHIFT 14 173 /** Locked Control: Must be zero. */ 174 #define VMMDEV_TESTING_LOCKED_MBZ_MASK UINT32_C(0x30000000) 175 /** Locked Control: Take lock with rcBusy set to VINF_SUCCESS. */ 176 #define VMMDEV_TESTING_LOCKED_BUSY_SUCCESS UINT32_C(0x40000000) 177 /** Locked Control: Poke EMT(s) flag. */ 178 #define VMMDEV_TESTING_LOCKED_POKE UINT32_C(0x80000000) 179 /** Low Locking Control: Thread lock hold interval in microseconds. */ 180 #define VMMDEV_TESTING_LOCKED_LO_HOLD_MASK UINT32_C(0x0000ffff) 181 /** Low Locking Control: Thread wait time in microseconds between locking 182 * attempts. */ 183 #define VMMDEV_TESTING_LOCKED_LO_WAIT_MASK UINT32_C(0xffff0000) 184 /** Low Locking Control: Thread wait time shift count. */ 185 #define VMMDEV_TESTING_LOCKED_LO_WAIT_SHIFT 16 186 /** High Locking Control: Kilo (1024) ticks the EMT should hold the lock. */ 187 #define VMMDEV_TESTING_LOCKED_HI_TICKS_MASK UINT32_C(0x000fffff) 188 /** High Locking Control: Must be zero. */ 189 #define VMMDEV_TESTING_LOCKED_HI_MBZ_MASK UINT32_C(0x03f00000) 190 /** High Locking Control: Thread takes lock in shared mode when set, exclusive 191 * when clear. */ 192 #define VMMDEV_TESTING_LOCKED_HI_THREAD_SHARED UINT32_C(0x04000000) 193 /** High Locking Control: EMT takes lock in shared mode when set, exclusive 194 * when clear. */ 195 #define VMMDEV_TESTING_LOCKED_HI_EMT_SHARED UINT32_C(0x08000000) 196 /** High Locking Control: Use read/write critical section instead of regular. */ 197 #define VMMDEV_TESTING_LOCKED_HI_TYPE_RW UINT32_C(0x10000000) 198 /** High Locking Control: EMT takes lock with rcBusy set to VINF_SUCCESS. */ 199 #define VMMDEV_TESTING_LOCKED_HI_BUSY_SUCCESS UINT32_C(0x20000000) 200 /** High Locking Control: Thread pokes EMTs before releasing lock. */ 201 #define VMMDEV_TESTING_LOCKED_HI_POKE UINT32_C(0x40000000) 202 /** High Locking Control: Thread enabled. */ 203 #define VMMDEV_TESTING_LOCKED_HI_ENABLED UINT32_C(0x80000000) 179 204 /** @} */ 180 205
Note:
See TracChangeset
for help on using the changeset viewer.