Changeset 41906 in vbox for trunk/include/VBox/vmm
- Timestamp:
- Jun 24, 2012 3:44:03 PM (12 years ago)
- Location:
- trunk/include/VBox/vmm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpum.h
r41904 r41906 248 248 return false; 249 249 250 return pCtx->cs Hid.Attr.n.u1Long;250 return pCtx->cs.Attr.n.u1Long; 251 251 } 252 252 … … 263 263 return false; 264 264 265 return pCtx->cs Hid.Attr.n.u1Long;265 return pCtx->cs.Attr.n.u1Long; 266 266 } 267 267 -
trunk/include/VBox/vmm/cpum.mac
r41905 r41906 48 48 .r14 resq 1 49 49 .r15 resq 1 50 .es resw 1 51 .esPadding resw 3 52 .esHid.u64Base resq 1 53 .esHid.u32Limit resd 1 54 .esHid.Attr resd 1 55 .cs resw 1 56 .csPadding resw 3 57 .csHid.u64Base resq 1 58 .csHid.u32Limit resd 1 59 .csHid.Attr resd 1 60 .ss resw 1 61 .ssPadding resw 3 62 .ssHid.u64Base resq 1 63 .ssHid.u32Limit resd 1 64 .ssHid.Attr resd 1 65 .ds resw 1 66 .dsPadding resw 3 67 .dsHid.u64Base resq 1 68 .dsHid.u32Limit resd 1 69 .dsHid.Attr resd 1 70 .fs resw 1 71 .fsPadding resw 3 72 .fsHid.u64Base resq 1 73 .fsHid.u32Limit resd 1 74 .fsHid.Attr resd 1 75 .gs resw 1 76 .gsPadding resw 3 77 .gsHid.u64Base resq 1 78 .gsHid.u32Limit resd 1 79 .gsHid.Attr resd 1 50 .es.Sel resw 1 51 .es.PaddingSel resw 1 52 .es.ValidSel resw 1 53 .es.fFlags resw 1 54 .es.u64Base resq 1 55 .es.u32Limit resd 1 56 .es.Attr resd 1 57 .cs.Sel resw 1 58 .cs.PaddingSel resw 1 59 .cs.ValidSel resw 1 60 .cs.fFlags resw 1 61 .cs.u64Base resq 1 62 .cs.u32Limit resd 1 63 .cs.Attr resd 1 64 .ss.Sel resw 1 65 .ss.PaddingSel resw 1 66 .ss.ValidSel resw 1 67 .ss.fFlags resw 1 68 .ss.u64Base resq 1 69 .ss.u32Limit resd 1 70 .ss.Attr resd 1 71 .ds.Sel resw 1 72 .ds.PaddingSel resw 1 73 .ds.ValidSel resw 1 74 .ds.fFlags resw 1 75 .ds.u64Base resq 1 76 .ds.u32Limit resd 1 77 .ds.Attr resd 1 78 .fs.Sel resw 1 79 .fs.PaddingSel resw 1 80 .fs.ValidSel resw 1 81 .fs.fFlags resw 1 82 .fs.u64Base resq 1 83 .fs.u32Limit resd 1 84 .fs.Attr resd 1 85 .gs.Sel resw 1 86 .gs.PaddingSel resw 1 87 .gs.ValidSel resw 1 88 .gs.fFlags resw 1 89 .gs.u64Base resq 1 90 .gs.u32Limit resd 1 91 .gs.Attr resd 1 80 92 .eip resq 1 81 93 .eflags resq 1 … … 101 113 .r14 resq 1 102 114 .r15 resq 1 103 .es resw 1 104 .esPadding resw 3 105 .esHid.u64Base resq 1 106 .esHid.u32Limit resd 1 107 .esHid.Attr resd 1 108 .cs resw 1 109 .csPadding resw 3 110 .csHid.u64Base resq 1 111 .csHid.u32Limit resd 1 112 .csHid.Attr resd 1 113 .ss resw 1 114 .ssPadding resw 3 115 .ssHid.u64Base resq 1 116 .ssHid.u32Limit resd 1 117 .ssHid.Attr resd 1 118 .ds resw 1 119 .dsPadding resw 3 120 .dsHid.u64Base resq 1 121 .dsHid.u32Limit resd 1 122 .dsHid.Attr resd 1 123 .fs resw 1 124 .fsPadding resw 3 125 .fsHid.u64Base resq 1 126 .fsHid.u32Limit resd 1 127 .fsHid.Attr resd 1 128 .gs resw 1 129 .gsPadding resw 3 130 .gsHid.u64Base resq 1 131 .gsHid.u32Limit resd 1 132 .gsHid.Attr resd 1 115 .es.Sel resw 1 116 .es.PaddingSel resw 1 117 .es.ValidSel resw 1 118 .es.fFlags resw 1 119 .es.u64Base resq 1 120 .es.u32Limit resd 1 121 .es.Attr resd 1 122 .cs.Sel resw 1 123 .cs.PaddingSel resw 1 124 .cs.ValidSel resw 1 125 .cs.fFlags resw 1 126 .cs.u64Base resq 1 127 .cs.u32Limit resd 1 128 .cs.Attr resd 1 129 .ss.Sel resw 1 130 .ss.PaddingSel resw 1 131 .ss.ValidSel resw 1 132 .ss.fFlags resw 1 133 .ss.u64Base resq 1 134 .ss.u32Limit resd 1 135 .ss.Attr resd 1 136 .ds.Sel resw 1 137 .ds.PaddingSel resw 1 138 .ds.ValidSel resw 1 139 .ds.fFlags resw 1 140 .ds.u64Base resq 1 141 .ds.u32Limit resd 1 142 .ds.Attr resd 1 143 .fs.Sel resw 1 144 .fs.PaddingSel resw 1 145 .fs.ValidSel resw 1 146 .fs.fFlags resw 1 147 .fs.u64Base resq 1 148 .fs.u32Limit resd 1 149 .fs.Attr resd 1 150 .gs.Sel resw 1 151 .gs.PaddingSel resw 1 152 .gs.ValidSel resw 1 153 .gs.fFlags resw 1 154 .gs.u64Base resq 1 155 .gs.u32Limit resd 1 156 .gs.Attr resd 1 133 157 .eip resq 1 134 158 .eflags resq 1 … … 146 170 .idtr.cbIdt resw 1 147 171 .idtr.pIdt resq 1 148 .ldtr resw 1 149 .ldtrPadding resw 3 150 .ldtrHid.u64Base resq 1 151 .ldtrHid.u32Limit resd 1 152 .ldtrHid.Attr resd 1 153 .tr resw 1 154 .trPadding resw 3 155 .trHid.u64Base resq 1 156 .trHid.u32Limit resd 1 157 .trHid.Attr resd 1 172 .ldtr.Sel resw 1 173 .ldtr.PaddingSel resw 1 174 .ldtr.ValidSel resw 1 175 .ldtr.fFlags resw 1 176 .ldtr.u64Base resq 1 177 .ldtr.u32Limit resd 1 178 .ldtr.Attr resd 1 179 .tr.Sel resw 1 180 .tr.PaddingSel resw 1 181 .tr.ValidSel resw 1 182 .tr.fFlags resw 1 183 .tr.u64Base resq 1 184 .tr.u32Limit resd 1 185 .tr.Attr resd 1 158 186 .SysEnter.cs resb 8 159 187 .SysEnter.eip resb 8 -
trunk/include/VBox/vmm/cpumctx.h
r41905 r41906 29 29 #ifndef VBOX_FOR_DTRACE_LIB 30 30 # include <iprt/x86.h> 31 # include <VBox/types.h> 31 32 #else 32 33 # pragma D depends_on library x86.d … … 44 45 * Selector hidden registers. 45 46 */ 46 typedef struct CPUMSELREGHID 47 { 47 typedef struct CPUMSELREG 48 { 49 /** The selector register. */ 50 RTSEL Sel; 51 /** Padding, don't use. */ 52 RTSEL PaddingSel; 53 /** The selector which info resides in u64Base, u32Limit and Attr, provided 54 * that CPUMSELREG_FLAGS_VALID is set. */ 55 RTSEL ValidSel; 56 /** Flags, see CPUMSELREG_FLAGS_XXX. */ 57 uint16_t fFlags; 58 48 59 /** Base register. 49 60 * 50 * 61 * Long mode remarks: 51 62 * - Unused in long mode for CS, DS, ES, SS 52 63 * - 32 bits for FS & GS; FS(GS)_BASE msr used for the base address … … 60 71 * Only the flags, dpl and type are used. */ 61 72 X86DESCATTR Attr; 62 } CPUMSELREGHID; 63 73 } CPUMSELREG; 74 75 /** @name CPUMSELREG_FLAGS_XXX - CPUMSELREG::fFlags values. 76 * @{ */ 77 #define CPUMSELREG_FLAGS_VALID UINT16_C(0x0001) 78 #define CPUMSELREG_FLAGS_STALE UINT16_C(0x0002) 79 /** @} */ 80 81 /** Old type used for the hidden register part. 82 * @deprecated */ 83 typedef CPUMSELREG CPUMSELREGHID; 64 84 65 85 /** … … 172 192 * @note These follow the encoding order (X86_SREG_XXX) and can be accessed as 173 193 * an array starting a es. 174 * @todo Combine the selector and hidden bits, effectively expanding the hidden175 * register structure by 64-bit.176 *177 194 * @{ */ 178 RTSEL es; 179 RTSEL esPadding[3]; 180 CPUMSELREGHID esHid; 181 182 RTSEL cs; 183 RTSEL csPadding[3]; 184 CPUMSELREGHID csHid; 185 186 RTSEL ss; 187 RTSEL ssPadding[3]; 188 CPUMSELREGHID ssHid; 189 190 RTSEL ds; 191 RTSEL dsPadding[3]; 192 CPUMSELREGHID dsHid; 193 194 RTSEL fs; 195 RTSEL fsPadding[3]; 196 CPUMSELREGHID fsHid; 197 198 RTSEL gs; 199 RTSEL gsPadding[3]; 200 CPUMSELREGHID gsHid; 195 CPUMSELREG es; 196 CPUMSELREG cs; 197 CPUMSELREG ss; 198 CPUMSELREG ds; 199 CPUMSELREG fs; 200 CPUMSELREG gs; 201 201 /** @} */ 202 202 … … 305 305 * @note These follow the encoding order (X86_SREG_XXX) and can be accessed as 306 306 * an array starting a es. 307 * @todo Combine the selector and hidden bits, effectively expanding the hidden308 * register structure by 64-bit.309 *310 307 * @{ */ 311 RTSEL es; 312 RTSEL esPadding[3]; 313 CPUMSELREGHID esHid; 314 315 RTSEL cs; 316 RTSEL csPadding[3]; 317 CPUMSELREGHID csHid; 318 319 RTSEL ss; 320 RTSEL ssPadding[3]; 321 CPUMSELREGHID ssHid; 322 323 RTSEL ds; 324 RTSEL dsPadding[3]; 325 CPUMSELREGHID dsHid; 326 327 RTSEL fs; 328 RTSEL fsPadding[3]; 329 CPUMSELREGHID fsHid; 330 331 RTSEL gs; 332 RTSEL gsPadding[3]; 333 CPUMSELREGHID gsHid; 308 CPUMSELREG es; 309 CPUMSELREG cs; 310 CPUMSELREG ss; 311 CPUMSELREG ds; 312 CPUMSELREG fs; 313 CPUMSELREG gs; 334 314 /** @} */ 335 315 … … 382 362 /** The task register. 383 363 * Only the guest context uses all the members. */ 384 RTSEL ldtr; 385 RTSEL ldtrPadding[3]; 386 CPUMSELREGHID ldtrHid; 364 CPUMSELREG ldtr; 387 365 /** The task register. 388 366 * Only the guest context uses all the members. */ 389 RTSEL tr; 390 RTSEL trPadding[3]; 391 CPUMSELREGHID trHid; 367 CPUMSELREG tr; 392 368 393 369 /** The sysenter msr registers.
Note:
See TracChangeset
for help on using the changeset viewer.