Changeset 54897 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Mar 22, 2015 10:49:39 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 99112
- Location:
- trunk/src/VBox/VMM/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/CPUMInternal.h
r54799 r54897 530 530 { 531 531 /** 532 * Hypervisor context.533 * Aligned on a 64-byte boundary.534 */535 CPUMCTX Hyper;536 537 /**538 * Saved host context. Only valid while inside GC.539 * Aligned on a 64-byte boundary.540 */541 CPUMHOSTCTX Host;542 543 #ifdef VBOX_WITH_CRASHDUMP_MAGIC544 uint8_t aMagic[56];545 uint64_t uMagic;546 #endif547 548 /**549 532 * Guest context. 550 533 * Aligned on a 64-byte boundary. … … 596 579 bool fRemEntered; 597 580 598 /** Align the structure on a 64-byte boundary. */581 /** Align the next member on a 64-bit boundrary. */ 599 582 uint8_t abPadding2[64 - 16 - (HC_ARCH_BITS == 64 ? 8 : 4) - 4 - 1 - 2]; 583 584 /** Saved host context. Only valid while inside RC or HM contexts. 585 * Must be aligned on a 64-byte boundary. */ 586 CPUMHOSTCTX Host; 587 /** Hypervisor context. Must be aligned on a 64-byte boundary. */ 588 CPUMCTX Hyper; 589 590 #ifdef VBOX_WITH_CRASHDUMP_MAGIC 591 uint8_t aMagic[56]; 592 uint64_t uMagic; 593 #endif 600 594 } CPUMCPU; 601 595 /** Pointer to the CPUMCPU instance data residing in the shared VMCPU structure. */ -
trunk/src/VBox/VMM/include/CPUMInternal.mac
r54763 r54897 123 123 struc CPUMCPU 124 124 ; 125 ; Hypervisor Context.126 ;127 .Hyper.fpu resb 512128 .Hyper.eax resq 1129 .Hyper.ecx resq 1130 .Hyper.edx resq 1131 .Hyper.ebx resq 1132 .Hyper.esp resq 1133 .Hyper.ebp resq 1134 .Hyper.esi resq 1135 .Hyper.edi resq 1136 .Hyper.r8 resq 1137 .Hyper.r9 resq 1138 .Hyper.r10 resq 1139 .Hyper.r11 resq 1140 .Hyper.r12 resq 1141 .Hyper.r13 resq 1142 .Hyper.r14 resq 1143 .Hyper.r15 resq 1144 .Hyper.es.Sel resw 1145 .Hyper.es.PaddingSel resw 1146 .Hyper.es.ValidSel resw 1147 .Hyper.es.fFlags resw 1148 .Hyper.es.u64Base resq 1149 .Hyper.es.u32Limit resd 1150 .Hyper.es.Attr resd 1151 .Hyper.cs.Sel resw 1152 .Hyper.cs.PaddingSel resw 1153 .Hyper.cs.ValidSel resw 1154 .Hyper.cs.fFlags resw 1155 .Hyper.cs.u64Base resq 1156 .Hyper.cs.u32Limit resd 1157 .Hyper.cs.Attr resd 1158 .Hyper.ss.Sel resw 1159 .Hyper.ss.PaddingSel resw 1160 .Hyper.ss.ValidSel resw 1161 .Hyper.ss.fFlags resw 1162 .Hyper.ss.u64Base resq 1163 .Hyper.ss.u32Limit resd 1164 .Hyper.ss.Attr resd 1165 .Hyper.ds.Sel resw 1166 .Hyper.ds.PaddingSel resw 1167 .Hyper.ds.ValidSel resw 1168 .Hyper.ds.fFlags resw 1169 .Hyper.ds.u64Base resq 1170 .Hyper.ds.u32Limit resd 1171 .Hyper.ds.Attr resd 1172 .Hyper.fs.Sel resw 1173 .Hyper.fs.PaddingSel resw 1174 .Hyper.fs.ValidSel resw 1175 .Hyper.fs.fFlags resw 1176 .Hyper.fs.u64Base resq 1177 .Hyper.fs.u32Limit resd 1178 .Hyper.fs.Attr resd 1179 .Hyper.gs.Sel resw 1180 .Hyper.gs.PaddingSel resw 1181 .Hyper.gs.ValidSel resw 1182 .Hyper.gs.fFlags resw 1183 .Hyper.gs.u64Base resq 1184 .Hyper.gs.u32Limit resd 1185 .Hyper.gs.Attr resd 1186 .Hyper.eip resq 1187 .Hyper.eflags resq 1188 .Hyper.cr0 resq 1189 .Hyper.cr2 resq 1190 .Hyper.cr3 resq 1191 .Hyper.cr4 resq 1192 .Hyper.dr resq 8193 .Hyper.gdtrPadding resw 3194 .Hyper.gdtr resw 0195 .Hyper.gdtr.cbGdt resw 1196 .Hyper.gdtr.pGdt resq 1197 .Hyper.idtrPadding resw 3198 .Hyper.idtr resw 0199 .Hyper.idtr.cbIdt resw 1200 .Hyper.idtr.pIdt resq 1201 .Hyper.ldtr.Sel resw 1202 .Hyper.ldtr.PaddingSel resw 1203 .Hyper.ldtr.ValidSel resw 1204 .Hyper.ldtr.fFlags resw 1205 .Hyper.ldtr.u64Base resq 1206 .Hyper.ldtr.u32Limit resd 1207 .Hyper.ldtr.Attr resd 1208 .Hyper.tr.Sel resw 1209 .Hyper.tr.PaddingSel resw 1210 .Hyper.tr.ValidSel resw 1211 .Hyper.tr.fFlags resw 1212 .Hyper.tr.u64Base resq 1213 .Hyper.tr.u32Limit resd 1214 .Hyper.tr.Attr resd 1215 .Hyper.SysEnter.cs resb 8216 .Hyper.SysEnter.eip resb 8217 .Hyper.SysEnter.esp resb 8218 .Hyper.msrEFER resb 8219 .Hyper.msrSTAR resb 8220 .Hyper.msrPAT resb 8221 .Hyper.msrLSTAR resb 8222 .Hyper.msrCSTAR resb 8223 .Hyper.msrSFMASK resb 8224 .Hyper.msrKERNELGSBASE resb 8225 .Hyper.msrApicBase resb 8226 227 ;228 ; Host context state229 ;230 alignb 64231 .Host.fpu resb FPUSTATE_SIZE232 233 %if HC_ARCH_BITS == 64 || fVBOX_WITH_HYBRID_32BIT_KERNEL234 ;.Host.rax resq 1 - scratch235 .Host.rbx resq 1236 ;.Host.rcx resq 1 - scratch237 ;.Host.rdx resq 1 - scratch238 .Host.rdi resq 1239 .Host.rsi resq 1240 .Host.rbp resq 1241 .Host.rsp resq 1242 ;.Host.r8 resq 1 - scratch243 ;.Host.r9 resq 1 - scratch244 .Host.r10 resq 1245 .Host.r11 resq 1246 .Host.r12 resq 1247 .Host.r13 resq 1248 .Host.r14 resq 1249 .Host.r15 resq 1250 ;.Host.rip resd 1 - scratch251 .Host.rflags resq 1252 %endif253 %if HC_ARCH_BITS == 32254 ;.Host.eax resd 1 - scratch255 .Host.ebx resd 1256 ;.Host.edx resd 1 - scratch257 ;.Host.ecx resd 1 - scratch258 .Host.edi resd 1259 .Host.esi resd 1260 .Host.ebp resd 1261 .Host.eflags resd 1262 ;.Host.eip resd 1 - scratch263 ; lss pair!264 .Host.esp resd 1265 %endif266 .Host.ss resw 1267 .Host.ssPadding resw 1268 .Host.gs resw 1269 .Host.gsPadding resw 1270 .Host.fs resw 1271 .Host.fsPadding resw 1272 .Host.es resw 1273 .Host.esPadding resw 1274 .Host.ds resw 1275 .Host.dsPadding resw 1276 .Host.cs resw 1277 .Host.csPadding resw 1278 279 %if HC_ARCH_BITS == 32 && fVBOX_WITH_HYBRID_32BIT_KERNEL == 0280 .Host.cr0 resd 1281 ;.Host.cr2 resd 1 - scratch282 .Host.cr3 resd 1283 .Host.cr4 resd 1284 285 .Host.dr0 resd 1286 .Host.dr1 resd 1287 .Host.dr2 resd 1288 .Host.dr3 resd 1289 .Host.dr6 resd 1290 .Host.dr7 resd 1291 292 .Host.gdtr resb 6 ; GDT limit + linear address293 .Host.gdtrPadding resw 1294 .Host.idtr resb 6 ; IDT limit + linear address295 .Host.idtrPadding resw 1296 .Host.ldtr resw 1297 .Host.ldtrPadding resw 1298 .Host.tr resw 1299 .Host.trPadding resw 1300 301 .Host.SysEnterPadding resd 1302 .Host.SysEnter.cs resq 1303 .Host.SysEnter.eip resq 1304 .Host.SysEnter.esp resq 1305 .Host.efer resq 1306 307 %else ; 64-bit308 309 .Host.cr0 resq 1310 ;.Host.cr2 resq 1 - scratch311 .Host.cr3 resq 1312 .Host.cr4 resq 1313 .Host.cr8 resq 1314 315 .Host.dr0 resq 1316 .Host.dr1 resq 1317 .Host.dr2 resq 1318 .Host.dr3 resq 1319 .Host.dr6 resq 1320 .Host.dr7 resq 1321 322 .Host.gdtr resb 10 ; GDT limit + linear address323 .Host.gdtrPadding resw 1324 .Host.idtr resb 10 ; IDT limit + linear address325 .Host.idtrPadding resw 1326 .Host.ldtr resw 1327 .Host.ldtrPadding resw 1328 .Host.tr resw 1329 .Host.trPadding resw 1330 331 .Host.SysEnter.cs resq 1332 .Host.SysEnter.eip resq 1333 .Host.SysEnter.esp resq 1334 .Host.FSbase resq 1335 .Host.GSbase resq 1336 .Host.efer resq 1337 %endif ; 64-bit338 339 %ifdef VBOX_WITH_CRASHDUMP_MAGIC340 .aMagic resb 56341 .uMagic resq 1342 %endif343 ;344 125 ; Guest context state 345 ; (Identical to the .Hyper chunk above.)126 ; (Identical to the .Hyper chunk below.) 346 127 ; 347 128 alignb 64 … … 470 251 471 252 .abPadding2 resb (64 - 16 - RTR0PTR_CB - 4 - 1 - 2) 253 254 ; 255 ; Host context state 256 ; 257 alignb 64 258 .Host.fpu resb FPUSTATE_SIZE 259 260 %if HC_ARCH_BITS == 64 || fVBOX_WITH_HYBRID_32BIT_KERNEL 261 ;.Host.rax resq 1 - scratch 262 .Host.rbx resq 1 263 ;.Host.rcx resq 1 - scratch 264 ;.Host.rdx resq 1 - scratch 265 .Host.rdi resq 1 266 .Host.rsi resq 1 267 .Host.rbp resq 1 268 .Host.rsp resq 1 269 ;.Host.r8 resq 1 - scratch 270 ;.Host.r9 resq 1 - scratch 271 .Host.r10 resq 1 272 .Host.r11 resq 1 273 .Host.r12 resq 1 274 .Host.r13 resq 1 275 .Host.r14 resq 1 276 .Host.r15 resq 1 277 ;.Host.rip resd 1 - scratch 278 .Host.rflags resq 1 279 %endif 280 %if HC_ARCH_BITS == 32 281 ;.Host.eax resd 1 - scratch 282 .Host.ebx resd 1 283 ;.Host.edx resd 1 - scratch 284 ;.Host.ecx resd 1 - scratch 285 .Host.edi resd 1 286 .Host.esi resd 1 287 .Host.ebp resd 1 288 .Host.eflags resd 1 289 ;.Host.eip resd 1 - scratch 290 ; lss pair! 291 .Host.esp resd 1 292 %endif 293 .Host.ss resw 1 294 .Host.ssPadding resw 1 295 .Host.gs resw 1 296 .Host.gsPadding resw 1 297 .Host.fs resw 1 298 .Host.fsPadding resw 1 299 .Host.es resw 1 300 .Host.esPadding resw 1 301 .Host.ds resw 1 302 .Host.dsPadding resw 1 303 .Host.cs resw 1 304 .Host.csPadding resw 1 305 306 %if HC_ARCH_BITS == 32 && fVBOX_WITH_HYBRID_32BIT_KERNEL == 0 307 .Host.cr0 resd 1 308 ;.Host.cr2 resd 1 - scratch 309 .Host.cr3 resd 1 310 .Host.cr4 resd 1 311 312 .Host.dr0 resd 1 313 .Host.dr1 resd 1 314 .Host.dr2 resd 1 315 .Host.dr3 resd 1 316 .Host.dr6 resd 1 317 .Host.dr7 resd 1 318 319 .Host.gdtr resb 6 ; GDT limit + linear address 320 .Host.gdtrPadding resw 1 321 .Host.idtr resb 6 ; IDT limit + linear address 322 .Host.idtrPadding resw 1 323 .Host.ldtr resw 1 324 .Host.ldtrPadding resw 1 325 .Host.tr resw 1 326 .Host.trPadding resw 1 327 328 .Host.SysEnterPadding resd 1 329 .Host.SysEnter.cs resq 1 330 .Host.SysEnter.eip resq 1 331 .Host.SysEnter.esp resq 1 332 .Host.efer resq 1 333 334 %else ; 64-bit 335 336 .Host.cr0 resq 1 337 ;.Host.cr2 resq 1 - scratch 338 .Host.cr3 resq 1 339 .Host.cr4 resq 1 340 .Host.cr8 resq 1 341 342 .Host.dr0 resq 1 343 .Host.dr1 resq 1 344 .Host.dr2 resq 1 345 .Host.dr3 resq 1 346 .Host.dr6 resq 1 347 .Host.dr7 resq 1 348 349 .Host.gdtr resb 10 ; GDT limit + linear address 350 .Host.gdtrPadding resw 1 351 .Host.idtr resb 10 ; IDT limit + linear address 352 .Host.idtrPadding resw 1 353 .Host.ldtr resw 1 354 .Host.ldtrPadding resw 1 355 .Host.tr resw 1 356 .Host.trPadding resw 1 357 358 .Host.SysEnter.cs resq 1 359 .Host.SysEnter.eip resq 1 360 .Host.SysEnter.esp resq 1 361 .Host.FSbase resq 1 362 .Host.GSbase resq 1 363 .Host.efer resq 1 364 %endif ; 64-bit 365 366 ; 367 ; Hypervisor Context (same as .Guest above). 368 ; 369 alignb 64 370 .Hyper.fpu resb 512 371 .Hyper.eax resq 1 372 .Hyper.ecx resq 1 373 .Hyper.edx resq 1 374 .Hyper.ebx resq 1 375 .Hyper.esp resq 1 376 .Hyper.ebp resq 1 377 .Hyper.esi resq 1 378 .Hyper.edi resq 1 379 .Hyper.r8 resq 1 380 .Hyper.r9 resq 1 381 .Hyper.r10 resq 1 382 .Hyper.r11 resq 1 383 .Hyper.r12 resq 1 384 .Hyper.r13 resq 1 385 .Hyper.r14 resq 1 386 .Hyper.r15 resq 1 387 .Hyper.es.Sel resw 1 388 .Hyper.es.PaddingSel resw 1 389 .Hyper.es.ValidSel resw 1 390 .Hyper.es.fFlags resw 1 391 .Hyper.es.u64Base resq 1 392 .Hyper.es.u32Limit resd 1 393 .Hyper.es.Attr resd 1 394 .Hyper.cs.Sel resw 1 395 .Hyper.cs.PaddingSel resw 1 396 .Hyper.cs.ValidSel resw 1 397 .Hyper.cs.fFlags resw 1 398 .Hyper.cs.u64Base resq 1 399 .Hyper.cs.u32Limit resd 1 400 .Hyper.cs.Attr resd 1 401 .Hyper.ss.Sel resw 1 402 .Hyper.ss.PaddingSel resw 1 403 .Hyper.ss.ValidSel resw 1 404 .Hyper.ss.fFlags resw 1 405 .Hyper.ss.u64Base resq 1 406 .Hyper.ss.u32Limit resd 1 407 .Hyper.ss.Attr resd 1 408 .Hyper.ds.Sel resw 1 409 .Hyper.ds.PaddingSel resw 1 410 .Hyper.ds.ValidSel resw 1 411 .Hyper.ds.fFlags resw 1 412 .Hyper.ds.u64Base resq 1 413 .Hyper.ds.u32Limit resd 1 414 .Hyper.ds.Attr resd 1 415 .Hyper.fs.Sel resw 1 416 .Hyper.fs.PaddingSel resw 1 417 .Hyper.fs.ValidSel resw 1 418 .Hyper.fs.fFlags resw 1 419 .Hyper.fs.u64Base resq 1 420 .Hyper.fs.u32Limit resd 1 421 .Hyper.fs.Attr resd 1 422 .Hyper.gs.Sel resw 1 423 .Hyper.gs.PaddingSel resw 1 424 .Hyper.gs.ValidSel resw 1 425 .Hyper.gs.fFlags resw 1 426 .Hyper.gs.u64Base resq 1 427 .Hyper.gs.u32Limit resd 1 428 .Hyper.gs.Attr resd 1 429 .Hyper.eip resq 1 430 .Hyper.eflags resq 1 431 .Hyper.cr0 resq 1 432 .Hyper.cr2 resq 1 433 .Hyper.cr3 resq 1 434 .Hyper.cr4 resq 1 435 .Hyper.dr resq 8 436 .Hyper.gdtrPadding resw 3 437 .Hyper.gdtr resw 0 438 .Hyper.gdtr.cbGdt resw 1 439 .Hyper.gdtr.pGdt resq 1 440 .Hyper.idtrPadding resw 3 441 .Hyper.idtr resw 0 442 .Hyper.idtr.cbIdt resw 1 443 .Hyper.idtr.pIdt resq 1 444 .Hyper.ldtr.Sel resw 1 445 .Hyper.ldtr.PaddingSel resw 1 446 .Hyper.ldtr.ValidSel resw 1 447 .Hyper.ldtr.fFlags resw 1 448 .Hyper.ldtr.u64Base resq 1 449 .Hyper.ldtr.u32Limit resd 1 450 .Hyper.ldtr.Attr resd 1 451 .Hyper.tr.Sel resw 1 452 .Hyper.tr.PaddingSel resw 1 453 .Hyper.tr.ValidSel resw 1 454 .Hyper.tr.fFlags resw 1 455 .Hyper.tr.u64Base resq 1 456 .Hyper.tr.u32Limit resd 1 457 .Hyper.tr.Attr resd 1 458 .Hyper.SysEnter.cs resb 8 459 .Hyper.SysEnter.eip resb 8 460 .Hyper.SysEnter.esp resb 8 461 .Hyper.msrEFER resb 8 462 .Hyper.msrSTAR resb 8 463 .Hyper.msrPAT resb 8 464 .Hyper.msrLSTAR resb 8 465 .Hyper.msrCSTAR resb 8 466 .Hyper.msrSFMASK resb 8 467 .Hyper.msrKERNELGSBASE resb 8 468 .Hyper.msrApicBase resb 8 469 alignb 64 470 471 %ifdef VBOX_WITH_CRASHDUMP_MAGIC 472 .aMagic resb 56 473 .uMagic resq 1 474 %endif 472 475 endstruc 473 476
Note:
See TracChangeset
for help on using the changeset viewer.