Changeset 46304 in vbox for trunk/include/VBox/vmm/hm_svm.h
- Timestamp:
- May 29, 2013 9:13:19 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_svm.h
r44528 r46304 4 4 5 5 /* 6 * Copyright (C) 2006-201 2Oracle Corporation6 * Copyright (C) 2006-2013 Oracle Corporation 7 7 * 8 8 * This file is part of VirtualBox Open Source Edition (OSE), as … … 269 269 270 270 271 /** @name SVM _VMCB.u64ExitInfo2271 /** @name SVMVMCB.u64ExitInfo2 272 272 * @{ 273 273 */ … … 282 282 /** @} */ 283 283 284 /** @name SVM _VMCB.ctrl.u32InterceptCtrl1284 /** @name SVMVMCB.ctrl.u32InterceptCtrl1 285 285 * @{ 286 286 */ … … 352 352 353 353 354 /** @name SVM _VMCB.ctrl.u32InterceptCtrl2354 /** @name SVMVMCB.ctrl.u32InterceptCtrl2 355 355 * @{ 356 356 */ … … 385 385 /** @} */ 386 386 387 /** @name SVM _VMCB.ctrl.u64NestedPaging387 /** @name SVMVMCB.ctrl.u64NestedPaging 388 388 * @{ 389 389 */ … … 391 391 /** @} */ 392 392 393 /** @name SVM _VMCB.ctrl.u64IntShadow393 /** @name SVMVMCB.ctrl.u64IntShadow 394 394 * @{ 395 395 */ … … 398 398 399 399 400 /** @name SVM _INTCTRL.u3Type400 /** @name SVMINTCTRL.u3Type 401 401 * @{ 402 402 */ … … 412 412 413 413 414 /** @name SVM _VMCB.ctrl.TLBCtrl.n.u8TLBFlush414 /** @name SVMVMCB.ctrl.TLBCtrl.n.u8TLBFlush 415 415 * @{ 416 416 */ … … 470 470 } n; 471 471 uint64_t au64[1]; 472 } SVM _EVENT;472 } SVMEVENT; 473 473 #pragma pack() 474 474 … … 494 494 } n; 495 495 uint64_t au64[1]; 496 } SVM _INTCTRL;496 } SVMINTCTRL; 497 497 #pragma pack() 498 498 … … 511 511 } n; 512 512 uint64_t au64[1]; 513 } SVM _TLBCTRL;513 } SVMTLBCTRL; 514 514 #pragma pack() 515 515 … … 537 537 } n; 538 538 uint32_t au32[1]; 539 } SVM _IOIO_EXIT;539 } SVMIOIOEXIT; 540 540 #pragma pack() 541 541 … … 551 551 } n; 552 552 uint64_t au64[1]; 553 } SVM _NPCTRL;553 } SVMNPCTRL; 554 554 #pragma pack() 555 555 … … 558 558 */ 559 559 #pragma pack(1) 560 typedef struct _SVM_VMCB560 typedef struct SVMVMCB 561 561 { 562 562 /** Control Area. */ … … 588 588 uint64_t u64TSCOffset; 589 589 /** Offset 0x58 - TLB control field. */ 590 SVM _TLBCTRLTLBCtrl;590 SVMTLBCTRL TLBCtrl; 591 591 /** Offset 0x60 - Interrupt control field. */ 592 SVM _INTCTRLIntCtrl;592 SVMINTCTRL IntCtrl; 593 593 /** Offset 0x68 - Interrupt shadow. */ 594 594 uint64_t u64IntShadow; … … 600 600 uint64_t u64ExitInfo2; 601 601 /** Offset 0x88 - Exit Interrupt info. */ 602 SVM _EVENTExitIntInfo;602 SVMEVENT ExitIntInfo; 603 603 /** Offset 0x90 - Nested Paging. */ 604 SVM _NPCTRLNestedPaging;604 SVMNPCTRL NestedPaging; 605 605 /** Offset 0x98-0xA7 - Reserved. */ 606 606 uint8_t u8Reserved2[0xA8-0x98]; 607 607 /** Offset 0xA8 - Event injection. */ 608 SVM _EVENTEventInject;608 SVMEVENT EventInject; 609 609 /** Offset 0xB0 - Host CR3 for nested paging. */ 610 610 uint64_t u64NestedPagingCR3; … … 715 715 /** Offset 0x698-0xFFF- Reserved. */ 716 716 uint8_t u8Reserved10[0x1000-0x698]; 717 } SVM _VMCB;717 } SVMVMCB; 718 718 #pragma pack() 719 AssertCompileSize(SVM_VMCB, 0x1000); 720 AssertCompileMemberOffset(SVM_VMCB, ctrl.u16InterceptRdCRx, 0x000); 721 AssertCompileMemberOffset(SVM_VMCB, ctrl.u16PauseFilterCount,0x03e); 722 AssertCompileMemberOffset(SVM_VMCB, ctrl.TLBCtrl, 0x058); 723 AssertCompileMemberOffset(SVM_VMCB, ctrl.ExitIntInfo, 0x088); 724 AssertCompileMemberOffset(SVM_VMCB, ctrl.EventInject, 0x0A8); 725 AssertCompileMemberOffset(SVM_VMCB, ctrl.abInstr, 0x0D1); 726 AssertCompileMemberOffset(SVM_VMCB, guest, 0x400); 727 AssertCompileMemberOffset(SVM_VMCB, guest.ES, 0x400); 728 AssertCompileMemberOffset(SVM_VMCB, guest.u8Reserved4, 0x4A0); 729 AssertCompileMemberOffset(SVM_VMCB, guest.u8CPL, 0x4CB); 730 AssertCompileMemberOffset(SVM_VMCB, guest.u8Reserved6, 0x4D8); 731 AssertCompileMemberOffset(SVM_VMCB, guest.u8Reserved7, 0x580); 732 AssertCompileMemberOffset(SVM_VMCB, guest.u8Reserved9, 0x648); 733 AssertCompileMemberOffset(SVM_VMCB, guest.u64GPAT, 0x668); 734 AssertCompileMemberOffset(SVM_VMCB, guest.u64LASTEXCPTO, 0x690); 735 AssertCompileMemberOffset(SVM_VMCB, u8Reserved10, 0x698); 719 /** Pointer to the SVMVMCB structure. */ 720 typedef SVMVMCB *PSVMVMCB; 721 AssertCompileMemberOffset(SVMVMCB, ctrl.u16InterceptRdCRx, 0x000); 722 AssertCompileMemberOffset(SVMVMCB, ctrl.u16PauseFilterCount, 0x03e); 723 AssertCompileMemberOffset(SVMVMCB, ctrl.TLBCtrl, 0x058); 724 AssertCompileMemberOffset(SVMVMCB, ctrl.ExitIntInfo, 0x088); 725 AssertCompileMemberOffset(SVMVMCB, ctrl.EventInject, 0x0A8); 726 AssertCompileMemberOffset(SVMVMCB, ctrl.abInstr, 0x0D1); 727 AssertCompileMemberOffset(SVMVMCB, guest, 0x400); 728 AssertCompileMemberOffset(SVMVMCB, guest.ES, 0x400); 729 AssertCompileMemberOffset(SVMVMCB, guest.TR, 0x490); 730 AssertCompileMemberOffset(SVMVMCB, guest.u64EFER, 0x4D0); 731 AssertCompileMemberOffset(SVMVMCB, guest.u64CR4, 0x548); 732 AssertCompileMemberOffset(SVMVMCB, guest.u64RIP, 0x578); 733 AssertCompileMemberOffset(SVMVMCB, guest.u64RSP, 0x5D8); 734 AssertCompileMemberOffset(SVMVMCB, guest.u64CR2, 0x640); 735 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved4, 0x4A0); 736 AssertCompileMemberOffset(SVMVMCB, guest.u8CPL, 0x4CB); 737 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved6, 0x4D8); 738 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved7, 0x580); 739 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved9, 0x648); 740 AssertCompileMemberOffset(SVMVMCB, guest.u64GPAT, 0x668); 741 AssertCompileMemberOffset(SVMVMCB, guest.u64LASTEXCPTO, 0x690); 742 AssertCompileMemberOffset(SVMVMCB, u8Reserved10, 0x698); 743 AssertCompileSize(SVMVMCB, 0x1000); 736 744 737 745 #ifdef IN_RING0 … … 741 749 /** @} */ 742 750 743 #endif 744 751 #endif /* ___VBox_vmm_svm_h */ 752
Note:
See TracChangeset
for help on using the changeset viewer.