Changeset 72555 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Jun 14, 2018 9:28:31 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 123048
- Location:
- trunk/src/VBox/VMM/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/EMInternal.h
r72490 r72555 292 292 293 293 /** 294 * Exit history entry. 295 * 296 * @remarks We could perhaps trim this down a little bit by assuming uFlatPC 297 * only needs 48 bits (currently true but will change) and stuffing 298 * the flags+type in the available 16 bits made available. The 299 * timestamp could likewise be shortened to accomodate the index, or 300 * we might skip the index entirely. However, since we will have to 301 * deal with 56-bit wide PC address before long, there's not point. 302 * 303 * On the upside, there are unused bits in both uFlagsAndType and the 304 * idxSlot fields if needed for anything. 305 */ 306 typedef struct EMEXITENTRY 307 { 308 /** The flat PC (CS:EIP/RIP) address of the exit. */ 309 uint64_t uFlatPC; 310 /** The EMEXIT_MAKE_FLAGS_AND_TYPE */ 311 uint32_t uFlagsAndType; 312 /** The index into the exit slot hash table. 313 * UINT32_MAX if too many collisions and not entered into it. */ 314 uint32_t idxSlot; 315 /** The TSC timestamp of the exit. 316 * This is 0 if not timestamped. */ 317 uint64_t uTimestamp; 318 } EMEXITENTRY; 319 /** Pointer to an exit history entry. */ 320 typedef EMEXITENTRY *PEMEXITENTRY; 321 /** Pointer to a const exit history entry. */ 322 typedef EMEXITENTRY const *PCEMEXITENTRY; 323 324 325 /** 294 326 * Converts a EM pointer into a VM pointer. 295 327 * @returns Pointer to the VM structure the EM is part of. … … 464 496 uint64_t padding1; 465 497 #endif 498 499 /** Where to store the next exit history entry. 500 * Since aExitHistory is 256 items longs, we'll just increment this and 501 * mask it when using it. That help the readers detect whether we've 502 * wrapped around or not. */ 503 uint64_t iNextExit; 504 /** Exit history table (6KB). */ 505 EMEXITENTRY aExitHistory[256]; 466 506 } EMCPU; 467 507 /** Pointer to EM VM instance data. */ -
trunk/src/VBox/VMM/include/NEMInternal.h
r72541 r72555 102 102 # define NEM_TMPL_STATIC 103 103 #endif 104 105 106 /** 107 * Generic NEM exit type enumeration for use with EMHistoryAddExit. 108 * 109 * On windows we've got two different set of exit types and they are both jumping 110 * around the place value wise, so EM can use their values. 111 * 112 * @note We only have exit types for exits not covered by EM here. 113 */ 114 typedef enum NEMEXITTYPE 115 { 116 /* windows: */ 117 NEMEXITTYPE_UNRECOVERABLE_EXCEPTION = 1, 118 NEMEXITTYPE_INVALID_VP_REGISTER_VALUE, 119 NEMEXITTYPE_INTTERRUPT_WINDOW, 120 NEMEXITTYPE_HALT, 121 NEMEXITTYPE_XCPT_UD, 122 NEMEXITTYPE_XCPT_DB, 123 NEMEXITTYPE_XCPT_BP, 124 NEMEXITTYPE_CANCELED 125 } NEMEXITTYPE; 104 126 105 127
Note:
See TracChangeset
for help on using the changeset viewer.