Changeset 53618 in vbox
- Timestamp:
- Dec 31, 2014 1:12:37 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 97387
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_svm.h
r53615 r53618 446 446 * SVM Selector type; includes hidden parts. 447 447 */ 448 #pragma pack(1)449 448 typedef struct 450 449 { … … 454 453 uint64_t u64Base; /**< Only lower 32 bits are implemented for CS, DS, ES & SS. */ 455 454 } SVMSEL; 456 #pragma pack() 455 AssertCompileSize(SVMSEL, 16); 457 456 458 457 /** 459 458 * SVM GDTR/IDTR type. 460 459 */ 461 #pragma pack(1)462 460 typedef struct 463 461 { … … 467 465 uint64_t u64Base; 468 466 } SVMGDTR; 469 #pragma pack() 467 AssertCompileSize(SVMGDTR, 16); 470 468 typedef SVMGDTR SVMIDTR; 471 469 … … 602 600 * SVM VM Control Block. (VMCB) 603 601 */ 604 #pragma pack(1)605 602 typedef struct SVMVMCB 606 603 { … … 620 617 /** Offset 0x0C - Intercept control field 1. */ 621 618 uint32_t u32InterceptCtrl1; 622 /** Offset 0x 0C- Intercept control field 2. */619 /** Offset 0x10 - Intercept control field 2. */ 623 620 uint32_t u32InterceptCtrl2; 624 621 /** Offset 0x14-0x3F - Reserved. */ … … 666 663 /** Offset 0xD0 - Number of bytes fetched. */ 667 664 uint8_t cbInstrFetched; 668 /** Offset 0xD1 - Number of bytes fetched. */665 /** Offset 0xD1 - Fetched bytes. */ 669 666 uint8_t abInstr[15]; 670 667 /** Offset 0xE0 - AVIC APIC_BACKING_PAGE pointer. */ … … 773 770 uint8_t u8Reserved10[0x1000-0x698]; 774 771 } SVMVMCB; 775 #pragma pack()776 772 /** Pointer to the SVMVMCB structure. */ 777 773 typedef SVMVMCB *PSVMVMCB; 778 AssertCompileMemberOffset(SVMVMCB, ctrl.u16InterceptRdCRx, 0x000); 779 AssertCompileMemberOffset(SVMVMCB, ctrl.u16PauseFilterCount, 0x03e); 780 AssertCompileMemberOffset(SVMVMCB, ctrl.TLBCtrl, 0x058); 781 AssertCompileMemberOffset(SVMVMCB, ctrl.ExitIntInfo, 0x088); 782 AssertCompileMemberOffset(SVMVMCB, ctrl.EventInject, 0x0A8); 783 AssertCompileMemberOffset(SVMVMCB, ctrl.abInstr, 0x0D1); 784 AssertCompileMemberOffset(SVMVMCB, ctrl.AvicBackingPagePtr, 0x0E0); 785 AssertCompileMemberOffset(SVMVMCB, ctrl.AvicLogicalTablePtr, 0x0F0); 786 AssertCompileMemberOffset(SVMVMCB, ctrl.AvicPhysicalTablePtr, 0x0F8); 787 AssertCompileMemberOffset(SVMVMCB, guest, 0x400); 788 AssertCompileMemberOffset(SVMVMCB, guest.ES, 0x400); 789 AssertCompileMemberOffset(SVMVMCB, guest.TR, 0x490); 790 AssertCompileMemberOffset(SVMVMCB, guest.u64EFER, 0x4D0); 791 AssertCompileMemberOffset(SVMVMCB, guest.u64CR4, 0x548); 792 AssertCompileMemberOffset(SVMVMCB, guest.u64RIP, 0x578); 793 AssertCompileMemberOffset(SVMVMCB, guest.u64RSP, 0x5D8); 794 AssertCompileMemberOffset(SVMVMCB, guest.u64CR2, 0x640); 795 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved4, 0x4A0); 796 AssertCompileMemberOffset(SVMVMCB, guest.u8CPL, 0x4CB); 797 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved6, 0x4D8); 798 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved7, 0x580); 799 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved9, 0x648); 800 AssertCompileMemberOffset(SVMVMCB, guest.u64GPAT, 0x668); 801 AssertCompileMemberOffset(SVMVMCB, guest.u64LASTEXCPTO, 0x690); 802 AssertCompileMemberOffset(SVMVMCB, u8Reserved10, 0x698); 774 AssertCompileMemberOffset(SVMVMCB, ctrl, 0x00); 775 AssertCompileMemberOffset(SVMVMCB, ctrl.u16InterceptRdCRx, 0x00); 776 AssertCompileMemberOffset(SVMVMCB, ctrl.u16InterceptWrCRx, 0x02); 777 AssertCompileMemberOffset(SVMVMCB, ctrl.u16InterceptRdDRx, 0x04); 778 AssertCompileMemberOffset(SVMVMCB, ctrl.u16InterceptWrDRx, 0x06); 779 AssertCompileMemberOffset(SVMVMCB, ctrl.u32InterceptException, 0x08); 780 AssertCompileMemberOffset(SVMVMCB, ctrl.u32InterceptCtrl1, 0x0C); 781 AssertCompileMemberOffset(SVMVMCB, ctrl.u32InterceptCtrl2, 0x10); 782 AssertCompileMemberOffset(SVMVMCB, ctrl.u8Reserved, 0x14); 783 AssertCompileMemberOffset(SVMVMCB, ctrl.u16PauseFilterThreshold, 0x3c); 784 AssertCompileMemberOffset(SVMVMCB, ctrl.u16PauseFilterCount, 0x3e); 785 AssertCompileMemberOffset(SVMVMCB, ctrl.u64IOPMPhysAddr, 0x40); 786 AssertCompileMemberOffset(SVMVMCB, ctrl.u64MSRPMPhysAddr, 0x48); 787 AssertCompileMemberOffset(SVMVMCB, ctrl.u64TSCOffset, 0x50); 788 AssertCompileMemberOffset(SVMVMCB, ctrl.TLBCtrl, 0x58); 789 AssertCompileMemberOffset(SVMVMCB, ctrl.IntCtrl, 0x60); 790 AssertCompileMemberOffset(SVMVMCB, ctrl.u64IntShadow, 0x68); 791 AssertCompileMemberOffset(SVMVMCB, ctrl.u64ExitCode, 0x70); 792 AssertCompileMemberOffset(SVMVMCB, ctrl.u64ExitInfo1, 0x78); 793 AssertCompileMemberOffset(SVMVMCB, ctrl.u64ExitInfo2, 0x80); 794 AssertCompileMemberOffset(SVMVMCB, ctrl.ExitIntInfo, 0x88); 795 AssertCompileMemberOffset(SVMVMCB, ctrl.NestedPaging, 0x90); 796 AssertCompileMemberOffset(SVMVMCB, ctrl.AvicBar, 0x98); 797 AssertCompileMemberOffset(SVMVMCB, ctrl.u8Reserved2, 0xA0); 798 AssertCompileMemberOffset(SVMVMCB, ctrl.EventInject, 0xA8); 799 AssertCompileMemberOffset(SVMVMCB, ctrl.u64NestedPagingCR3, 0xB0); 800 AssertCompileMemberOffset(SVMVMCB, ctrl.u64LBRVirt, 0xB8); 801 AssertCompileMemberOffset(SVMVMCB, ctrl.u64VmcbCleanBits, 0xC0); 802 AssertCompileMemberOffset(SVMVMCB, ctrl.u64NextRIP, 0xC8); 803 AssertCompileMemberOffset(SVMVMCB, ctrl.cbInstrFetched, 0xD0); 804 AssertCompileMemberOffset(SVMVMCB, ctrl.abInstr, 0xD1); 805 AssertCompileMemberOffset(SVMVMCB, ctrl.AvicBackingPagePtr, 0xE0); 806 AssertCompileMemberOffset(SVMVMCB, ctrl.u8Reserved3, 0xE8); 807 AssertCompileMemberOffset(SVMVMCB, ctrl.AvicLogicalTablePtr, 0xF0); 808 AssertCompileMemberOffset(SVMVMCB, ctrl.AvicPhysicalTablePtr, 0xF8); 809 AssertCompileMemberOffset(SVMVMCB, u8Reserved3, 0x100); 810 AssertCompileMemberOffset(SVMVMCB, guest, 0x400); 811 AssertCompileMemberOffset(SVMVMCB, guest.ES, 0x400); 812 AssertCompileMemberOffset(SVMVMCB, guest.CS, 0x410); 813 AssertCompileMemberOffset(SVMVMCB, guest.SS, 0x420); 814 AssertCompileMemberOffset(SVMVMCB, guest.DS, 0x430); 815 AssertCompileMemberOffset(SVMVMCB, guest.FS, 0x440); 816 AssertCompileMemberOffset(SVMVMCB, guest.GS, 0x450); 817 AssertCompileMemberOffset(SVMVMCB, guest.GDTR, 0x460); 818 AssertCompileMemberOffset(SVMVMCB, guest.LDTR, 0x470); 819 AssertCompileMemberOffset(SVMVMCB, guest.IDTR, 0x480); 820 AssertCompileMemberOffset(SVMVMCB, guest.TR, 0x490); 821 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved4, 0x4A0); 822 AssertCompileMemberOffset(SVMVMCB, guest.u8CPL, 0x4CB); 823 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved5, 0x4CC); 824 AssertCompileMemberOffset(SVMVMCB, guest.u64EFER, 0x4D0); 825 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved6, 0x4D8); 826 AssertCompileMemberOffset(SVMVMCB, guest.u64CR4, 0x548); 827 AssertCompileMemberOffset(SVMVMCB, guest.u64CR3, 0x550); 828 AssertCompileMemberOffset(SVMVMCB, guest.u64CR0, 0x558); 829 AssertCompileMemberOffset(SVMVMCB, guest.u64DR7, 0x560); 830 AssertCompileMemberOffset(SVMVMCB, guest.u64DR6, 0x568); 831 AssertCompileMemberOffset(SVMVMCB, guest.u64RFlags, 0x570); 832 AssertCompileMemberOffset(SVMVMCB, guest.u64RIP, 0x578); 833 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved7, 0x580); 834 AssertCompileMemberOffset(SVMVMCB, guest.u64RSP, 0x5D8); 835 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved8, 0x5E0); 836 AssertCompileMemberOffset(SVMVMCB, guest.u64RAX, 0x5F8); 837 AssertCompileMemberOffset(SVMVMCB, guest.u64STAR, 0x600); 838 AssertCompileMemberOffset(SVMVMCB, guest.u64LSTAR, 0x608); 839 AssertCompileMemberOffset(SVMVMCB, guest.u64CSTAR, 0x610); 840 AssertCompileMemberOffset(SVMVMCB, guest.u64SFMASK, 0x618); 841 AssertCompileMemberOffset(SVMVMCB, guest.u64KernelGSBase, 0x620); 842 AssertCompileMemberOffset(SVMVMCB, guest.u64SysEnterCS, 0x628); 843 AssertCompileMemberOffset(SVMVMCB, guest.u64SysEnterESP, 0x630); 844 AssertCompileMemberOffset(SVMVMCB, guest.u64SysEnterEIP, 0x638); 845 AssertCompileMemberOffset(SVMVMCB, guest.u64CR2, 0x640); 846 AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved9, 0x648); 847 AssertCompileMemberOffset(SVMVMCB, guest.u64GPAT, 0x668); 848 AssertCompileMemberOffset(SVMVMCB, guest.u64DBGCTL, 0x670); 849 AssertCompileMemberOffset(SVMVMCB, guest.u64BR_FROM, 0x678); 850 AssertCompileMemberOffset(SVMVMCB, guest.u64BR_TO, 0x680); 851 AssertCompileMemberOffset(SVMVMCB, guest.u64LASTEXCPFROM, 0x688); 852 AssertCompileMemberOffset(SVMVMCB, guest.u64LASTEXCPTO, 0x690); 853 AssertCompileMemberOffset(SVMVMCB, u8Reserved10, 0x698); 803 854 AssertCompileSize(SVMVMCB, 0x1000); 804 855
Note:
See TracChangeset
for help on using the changeset viewer.