Changeset 47437 in vbox for trunk/include/VBox
- Timestamp:
- Jul 27, 2013 7:24:42 PM (11 years ago)
- Location:
- trunk/include/VBox/vmm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_vmx.h
r47436 r47437 69 69 /** 70 70 * Host-state restoration structure. 71 * This holds host-state fields that require manual restoration. The layout is 72 * critical as it's used from assembly code. 73 */ 74 #pragma pack(1) 71 * This holds host-state fields that require manual restoration. 72 * Assembly version found in hm_vmx.mac (should be automatically verified). 73 */ 75 74 typedef struct VMXRESTOREHOST 76 75 { … … 80 79 RTSEL uHostSelGS; /* 0x06 */ 81 80 RTSEL uHostSelTR; /* 0x08 */ 82 uint16_t u16Padding; /* 0x0a */ 83 uint64_t uHostFSBase; /* 0x0c */ 84 uint64_t uHostGSBase; /* 0x14 */ 85 X86XDTR64 HostGdtr; /* 0x1c */ 86 X86XDTR64 HostIdtr; /* 0x26 */ 81 uint8_t abPadding0[4]; 82 X86XDTR64 HostGdtr; /**< 0x0e - should be aligned by it's 64-bit member. */ 83 uint8_t abPadding1[6]; 84 X86XDTR64 HostIdtr; /**< 0x1e - should be aligned by it's 64-bit member. */ 85 uint64_t uHostFSBase; /* 0x28 */ 86 uint64_t uHostGSBase; /* 0x30 */ 87 87 } VMXRESTOREHOST; 88 #pragma pack()89 88 /** Pointer to VMXRESTOREHOST. */ 90 89 typedef VMXRESTOREHOST *PVMXRESTOREHOST; 91 90 AssertCompileSize(X86XDTR64, 10); 92 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelDS, 0); 93 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelES, 2); 94 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelFS, 4); 95 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelGS, 6); 96 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelTR, 8); 97 AssertCompileMemberOffset(VMXRESTOREHOST, uHostFSBase, 12); 98 AssertCompileMemberOffset(VMXRESTOREHOST, uHostGSBase, 20); 99 AssertCompileMemberOffset(VMXRESTOREHOST, HostGdtr, 28); 100 AssertCompileMemberOffset(VMXRESTOREHOST, HostIdtr, 38); 101 AssertCompileSize(VMXRESTOREHOST, 48); 91 AssertCompileMemberOffset(VMXRESTOREHOST, HostGdtr.uAddr, 16); 92 AssertCompileMemberOffset(VMXRESTOREHOST, HostIdtr.uAddr, 32); 93 AssertCompileMemberOffset(VMXRESTOREHOST, uHostFSBase, 40); 94 AssertCompileSize(VMXRESTOREHOST, 56); 102 95 103 96 /** @name VMX VMCS-Read cache indices. -
trunk/include/VBox/vmm/hm_vmx.mac
r46942 r47437 160 160 %define VMX_RESTORE_HOST_IDTR 40h ;RT_BIT(6) 161 161 162 ;; C version hm_vmx.h 162 163 struc VMXRESTOREHOST 163 164 .uHostSelDS resw 1 … … 166 167 .uHostSelGS resw 1 167 168 .uHostSelTR resw 1 168 .u16Padding resw 1 169 .abPadding0 resb 4 170 .HostGdtr resb 10 171 .abPadding1 resb 6 172 .HostIdtr resb 10 169 173 .uHostFSBase resq 1 170 174 .uHostGSBase resq 1 171 .HostGdtr resb 10172 .HostIdtr resb 10173 175 endstruc 176 AssertCompileMemberOffset(VMXRESTOREHOST, HostGdtr, 16-2) 177 AssertCompileMemberOffset(VMXRESTOREHOST, HostIdtr, 32-2) 178 AssertCompileMemberOffset(VMXRESTOREHOST, uHostFSBase, 40) 179 AssertCompileSize(VMXRESTOREHOST, 56) 174 180
Note:
See TracChangeset
for help on using the changeset viewer.