Changeset 102374 in vbox
- Timestamp:
- Nov 29, 2023 10:39:20 AM (16 months ago)
- svn:sync-xref-src-repo-rev:
- 160510
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpumctx-x86-amd64.h
r100935 r102374 325 325 typedef struct CPUMCTX 326 326 { 327 /** General purpose registers. */327 /** 0x0000 - General purpose registers. */ 328 328 union /* no tag! */ 329 329 { … … 366 366 } CPUM_UNION_NM(g); 367 367 368 /** Segment registers. */368 /** 0x0080 - Segment registers. */ 369 369 union /* no tag! */ 370 370 { … … 378 378 } CPUM_UNION_NM(s); 379 379 380 /** The task register.380 /** 0x0110 - The task register. 381 381 * Only the guest context uses all the members. */ 382 382 CPUMSELREG ldtr; 383 /** The task register.383 /** 0x0128 - The task register. 384 384 * Only the guest context uses all the members. */ 385 385 CPUMSELREG tr; 386 386 387 /** The program counter. */387 /** 0x0140 - The program counter. */ 388 388 union 389 389 { … … 393 393 } CPUM_UNION_NM(rip); 394 394 395 /** The flags register. */395 /** 0x0148 - The flags register. */ 396 396 union 397 397 { … … 400 400 } CPUM_UNION_NM(rflags); 401 401 402 /** 0x 150 - Externalized state tracker, CPUMCTX_EXTRN_XXX. */402 /** 0x0150 - Externalized state tracker, CPUMCTX_EXTRN_XXX. */ 403 403 uint64_t fExtrn; 404 404 405 /** The RIP value an interrupt shadow is/was valid for. */405 /** 0x0158 The RIP value an interrupt shadow is/was valid for. */ 406 406 uint64_t uRipInhibitInt; 407 407 408 408 /** @name Control registers. 409 409 * @{ */ 410 uint64_t cr0; 411 uint64_t cr2; 412 uint64_t cr3; 413 uint64_t cr4; 410 uint64_t cr0; /**< 0x0160 */ 411 uint64_t cr2; /**< 0x0168 */ 412 uint64_t cr3; /**< 0x0170 */ 413 uint64_t cr4; /**< 0x0178 */ 414 414 /** @} */ 415 415 416 /** Debug registers.416 /** 0x0180 - Debug registers. 417 417 * @remarks DR4 and DR5 should not be used since they are aliases for 418 418 * DR6 and DR7 respectively on both AMD and Intel CPUs. … … 422 422 uint64_t dr[8]; 423 423 424 /** Padding before the structure so the 64-bit member is correctly aligned.424 /** 0x01c0 - Padding before the structure so the 64-bit member is correctly aligned. 425 425 * @todo fix this structure! */ 426 426 uint16_t gdtrPadding[3]; … … 428 428 VBOXGDTR gdtr; 429 429 430 /** Padding before the structure so the 64-bit member is correctly aligned.430 /** 0x01d0 - Padding before the structure so the 64-bit member is correctly aligned. 431 431 * @todo fix this structure! */ 432 432 uint16_t idtrPadding[3]; … … 434 434 VBOXIDTR idtr; 435 435 436 /** The sysenter msr registers.436 /** 0x01e0 - The sysenter msr registers. 437 437 * This member is not used by the hypervisor context. */ 438 438 CPUMSYSENTER SysEnter; … … 440 440 /** @name System MSRs. 441 441 * @{ */ 442 uint64_t msrEFER; /**<@todo move EFER up to the crX registers for better cacheline mojo */443 uint64_t msrSTAR; /**< Legacy syscall eip, cs & ss. */444 uint64_t msrPAT; /**< Page attribute table. */445 uint64_t msrLSTAR; /**< 64 bits mode syscall rip. */446 uint64_t msrCSTAR; /**< Compatibility mode syscall rip. */447 uint64_t msrSFMASK; /**< syscall flag mask. */448 uint64_t msrKERNELGSBASE; /**< swapgs exchange value. */442 uint64_t msrEFER; /**< 0x01f8 - @todo move EFER up to the crX registers for better cacheline mojo */ 443 uint64_t msrSTAR; /**< 0x0200 - Legacy syscall eip, cs & ss. */ 444 uint64_t msrPAT; /**< 0x0208 - Page attribute table. */ 445 uint64_t msrLSTAR; /**< 0x0210 - 64 bits mode syscall rip. */ 446 uint64_t msrCSTAR; /**< 0x0218 - Compatibility mode syscall rip. */ 447 uint64_t msrSFMASK; /**< 0x0220 - syscall flag mask. */ 448 uint64_t msrKERNELGSBASE; /**< 0x0228 - swapgs exchange value. */ 449 449 /** @} */ 450 450 451 uint64_t au64Unused[2]; 451 uint64_t au64Unused[2]; /**< 0x0230 */ 452 452 453 453 /** 0x240 - PAE PDPTEs. */
Note:
See TracChangeset
for help on using the changeset viewer.