Changeset 67924 in vbox
- Timestamp:
- Jul 12, 2017 11:12:15 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 116916
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpum.h
r67258 r67924 1315 1315 } 1316 1316 1317 #ifndef IN_RC 1317 1318 /** 1318 1319 * Checks if the guest VMCB has the specified ctrl/instruction intercept active. … … 1325 1326 DECLINLINE(bool) CPUMIsGuestSvmCtrlInterceptSet(PCCPUMCTX pCtx, uint64_t fIntercept) 1326 1327 { 1327 return RT_BOOL(pCtx->hwvirt.svm.VmcbCtrl.u64InterceptCtrl & fIntercept); 1328 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 1329 return RT_BOOL(pVmcbCtrl->u64InterceptCtrl & fIntercept); 1328 1330 } 1329 1331 … … 1338 1340 DECLINLINE(bool) CPUMIsGuestSvmReadCRxInterceptSet(PCCPUMCTX pCtx, uint8_t uCr) 1339 1341 { 1340 return RT_BOOL(pCtx->hwvirt.svm.VmcbCtrl.u16InterceptRdCRx & (1 << uCr)); 1342 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 1343 return RT_BOOL(pVmcbCtrl->u16InterceptRdCRx & (1 << uCr)); 1341 1344 } 1342 1345 … … 1351 1354 DECLINLINE(bool) CPUMIsGuestSvmWriteCRxInterceptSet(PCCPUMCTX pCtx, uint8_t uCr) 1352 1355 { 1353 return RT_BOOL(pCtx->hwvirt.svm.VmcbCtrl.u16InterceptWrCRx & (1 << uCr)); 1356 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 1357 return RT_BOOL(pVmcbCtrl->u16InterceptWrCRx & (1 << uCr)); 1354 1358 } 1355 1359 … … 1364 1368 DECLINLINE(bool) CPUMIsGuestSvmReadDRxInterceptSet(PCCPUMCTX pCtx, uint8_t uDr) 1365 1369 { 1366 return RT_BOOL(pCtx->hwvirt.svm.VmcbCtrl.u16InterceptRdDRx & (1 << uDr)); 1370 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 1371 return RT_BOOL(pVmcbCtrl->u16InterceptRdDRx & (1 << uDr)); 1367 1372 } 1368 1373 … … 1377 1382 DECLINLINE(bool) CPUMIsGuestSvmWriteDRxInterceptSet(PCCPUMCTX pCtx, uint8_t uDr) 1378 1383 { 1379 return RT_BOOL(pCtx->hwvirt.svm.VmcbCtrl.u16InterceptWrDRx & (1 << uDr)); 1384 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 1385 return RT_BOOL(pVmcbCtrl->u16InterceptWrDRx & (1 << uDr)); 1380 1386 } 1381 1387 … … 1391 1397 { 1392 1398 Assert(uVector < 32); 1393 return RT_BOOL(pCtx->hwvirt.svm.VmcbCtrl.u32InterceptXcpt & (UINT32_C(1) << uVector)); 1399 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 1400 return RT_BOOL(pVmcbCtrl->u32InterceptXcpt & (UINT32_C(1) << uVector)); 1394 1401 } 1402 #endif /* !IN_RC */ 1395 1403 1396 1404 /** … … 1406 1414 * See AMD spec. 15.5 "VMRUN instruction" subsection "Canonicalization and Consistency Checks". 1407 1415 */ 1408 return RT_BOOL(pCtx->hwvirt.svm.VmcbCtrl.u64InterceptCtrl & SVM_CTRL_INTERCEPT_VMRUN); 1416 #ifndef IN_RC 1417 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 1418 return RT_BOOL(pVmcbCtrl->u64InterceptCtrl & SVM_CTRL_INTERCEPT_VMRUN); 1419 #else 1420 RT_NOREF(pCtx); 1421 return false; 1422 #endif 1409 1423 } 1410 1424 … … 1417 1431 DECLINLINE(bool) CPUMIsGuestInVmxNestedHwVirtMode(PCCPUMCTX pCtx) 1418 1432 { 1419 RT_NOREF1(pCtx);1420 1433 /** @todo Intel. */ 1434 RT_NOREF(pCtx); 1421 1435 return false; 1422 1436 } -
trunk/include/VBox/vmm/cpum.mac
r66667 r67924 258 258 .abPadding resb 12 259 259 %endif 260 .hwvirt.svm.uMsrHSavePa resq 1 261 .hwvirt.svm.GCPhysVmcb resq 1 262 .hwvirt.svm.VmcbCtrl resb 256 263 .hwvirt.svm.HostState resb 184 264 .hwvirt.svm.fGif resb 1 265 .hwvirt.svm.cPauseFilter resw 1 266 .hwvirt.svm.cPauseFilterThreshold resw 1 267 .hwvirt.svm.fInterceptEvents resb 1 268 .hwvirt.svm.abPadding0 resb 2 269 .hwvirt.svm.pvMsrBitmapR0 RTR0PTR_RES 1 270 .hwvirt.svm.pvMsrBitmapR3 RTR3PTR_RES 1 271 .hwvirt.svm.pvIoBitmapR0 RTR0PTR_RES 1 272 .hwvirt.svm.pvIoBitmapR3 RTR3PTR_RES 1 260 .hwvirt.svm.uMsrHSavePa resq 1 261 .hwvirt.svm.GCPhysVmcb resq 1 262 .hwvirt.svm.pVmcbR0 RTR0PTR_RES 1 263 .hwvirt.svm.pVmcbR3 RTR3PTR_RES 1 273 264 %if HC_ARCH_BITS == 32 274 .hwvirt.svm.abPadding1 resb 16 275 %endif 276 .hwvirt.fLocalForcedActions resd 1 265 .hwvirt.svm.abPadding0 resb 8 266 %endif 267 .hwvirt.svm.HostState resb 184 268 .hwvirt.svm.fGif resb 1 269 .hwvirt.svm.cPauseFilter resw 1 270 .hwvirt.svm.cPauseFilterThreshold resw 1 271 .hwvirt.svm.fInterceptEvents resb 1 272 .hwvirt.svm.abPadding1 resb 2 273 .hwvirt.svm.pvMsrBitmapR0 RTR0PTR_RES 1 274 .hwvirt.svm.pvMsrBitmapR3 RTR3PTR_RES 1 275 .hwvirt.svm.pvIoBitmapR0 RTR0PTR_RES 1 276 .hwvirt.svm.pvIoBitmapR3 RTR3PTR_RES 1 277 %if HC_ARCH_BITS == 32 278 .hwvirt.svm.abPadding2 resb 16 279 %endif 280 .hwvirt.fLocalForcedActions resd 1 277 281 alignb 64 278 282 endstruc -
trunk/include/VBox/vmm/cpumctx.h
r66667 r67924 479 479 /** 736 - Guest physical address of the nested-guest VMCB. */ 480 480 RTGCPHYS GCPhysVmcb; 481 /** 744 - Cache of the nested-guest VMCB control area. */ 482 SVMVMCBCTRL VmcbCtrl; 483 /** 1000 - Guest's host-state save area. */ 481 /** 744 - Cache of the nested-guest VMCB - R0 ptr. */ 482 R0PTRTYPE(PSVMVMCB) pVmcbR0; 483 /** 752 / 748 - Cache of the nested-guest VMCB - R3 ptr. */ 484 R3PTRTYPE(PSVMVMCB) pVmcbR3; 485 #if HC_ARCH_BITS == 32 486 /** NA / 752 - Padding. */ 487 uint8_t abPadding0[8]; 488 #endif 489 /** 760 - Guest's host-state save area. */ 484 490 SVMHOSTSTATE HostState; 485 /** 1184 - Global interrupt flag. */491 /** 944 - Global interrupt flag. */ 486 492 uint8_t fGif; 487 /** 1185 - Pause filter count. */493 /** 945 - Pause filter count. */ 488 494 uint16_t cPauseFilter; 489 /** 1187 - Pause filter count. */495 /** 947 - Pause filter count. */ 490 496 uint16_t cPauseFilterThreshold; 491 /** 1189 - Whether the injected event is subject to event intercepts. */497 /** 949 - Whether the injected event is subject to event intercepts. */ 492 498 uint8_t fInterceptEvents; 493 /** 1190 - Padding. */494 uint8_t abPadding 0[2];495 /** 1192 - MSR permission bitmap - R0 ptr. */499 /** 950 - Padding. */ 500 uint8_t abPadding1[2]; 501 /** 952 - MSR permission bitmap - R0 ptr. */ 496 502 R0PTRTYPE(void *) pvMsrBitmapR0; 497 /** 1200 / 1196 - MSR permission bitmap - R3 ptr. */503 /** 960 / 956 - MSR permission bitmap - R3 ptr. */ 498 504 R3PTRTYPE(void *) pvMsrBitmapR3; 499 /** 1208 / 1200 - IO permission bitmap - R0 ptr. */505 /** 968 / 960 - IO permission bitmap - R0 ptr. */ 500 506 R0PTRTYPE(void *) pvIoBitmapR0; 501 /** 1216 / 1204 - IO permission bitmap - R3 ptr. */507 /** 976 / 964 - IO permission bitmap - R3 ptr. */ 502 508 R3PTRTYPE(void *) pvIoBitmapR3; 503 509 #if HC_ARCH_BITS == 32 504 /** NA / 1200- Padding. */505 uint8_t abPadding 1[16];510 /** NA / 968 - Padding. */ 511 uint8_t abPadding2[16]; 506 512 #endif 507 513 } svm; … … 513 519 } CPUM_UNION_NM(s); 514 520 515 /** 1224 - A subset of force flags that are preserved while running521 /** 984 - A subset of force flags that are preserved while running 516 522 * the nested-guest. */ 517 523 uint32_t fLocalForcedActions; 518 524 /** 1212 - Padding. */ 519 uint8_t abPadding1[ 52];525 uint8_t abPadding1[36]; 520 526 } hwvirt; 521 527 /** @} */ … … 575 581 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.uMsrHSavePa, 728); 576 582 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.GCPhysVmcb, 736); 577 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.VmcbCtrl, 744); 578 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.HostState, 1000); 579 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.fGif, 1184); 580 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.cPauseFilter, 1185); 581 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.cPauseFilterThreshold, 1187); 582 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.fInterceptEvents, 1189); 583 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvMsrBitmapR0, 1192); 584 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvMsrBitmapR3, HC_ARCH_BITS == 64 ? 1200 : 1196); 585 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvIoBitmapR0, HC_ARCH_BITS == 64 ? 1208 : 1200); 586 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvIoBitmapR3, HC_ARCH_BITS == 64 ? 1216 : 1204); 587 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) fLocalForcedActions, 1224); 583 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pVmcbR0, 744); 584 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pVmcbR3, HC_ARCH_BITS == 64 ? 752 : 748); 585 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.HostState, 760); 586 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.fGif, 944); 587 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.cPauseFilter, 945); 588 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.cPauseFilterThreshold, 947); 589 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.fInterceptEvents, 949); 590 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvMsrBitmapR0, 952); 591 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvMsrBitmapR3, HC_ARCH_BITS == 64 ? 960 : 956); 592 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvIoBitmapR0, HC_ARCH_BITS == 64 ? 968 : 960); 593 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvIoBitmapR3, HC_ARCH_BITS == 64 ? 976 : 964); 594 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) fLocalForcedActions, 984); 595 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pVmcbR0, 8); 596 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvMsrBitmapR0, 8); 597 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvIoBitmapR0, 8); 588 598 589 599 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_NM(g.) aGRegs); -
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r67696 r67924 2555 2555 VMM_INT_DECL(bool) CPUMCanSvmNstGstTakePhysIntr(PCCPUMCTX pCtx) 2556 2556 { 2557 #ifdef IN_RC 2558 RT_NOREF(pCtx); 2559 AssertReleaseFailedReturn(false); 2560 #else 2557 2561 Assert(CPUMIsGuestInSvmNestedHwVirtMode(pCtx)); 2558 2562 Assert(pCtx->hwvirt.svm.fGif); 2559 2563 2560 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm. VmcbCtrl;2564 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 2561 2565 X86EFLAGS fEFlags; 2562 2566 if (pVmcbCtrl->IntCtrl.n.u1VIntrMasking) … … 2566 2570 2567 2571 return fEFlags.Bits.u1IF; 2572 #endif 2568 2573 } 2569 2574 … … 2580 2585 VMM_INT_DECL(bool) CPUMCanSvmNstGstTakeVirtIntr(PCCPUMCTX pCtx) 2581 2586 { 2587 #ifdef IN_RC 2588 RT_NOREF(pCtx); 2589 AssertReleaseFailedReturn(false); 2590 #else 2582 2591 Assert(CPUMIsGuestInSvmNestedHwVirtMode(pCtx)); 2583 2592 2584 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm. VmcbCtrl;2593 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 2585 2594 if ( !pVmcbCtrl->IntCtrl.n.u1IgnoreTPR 2586 2595 && pVmcbCtrl->IntCtrl.n.u4VIntrPrio <= pVmcbCtrl->IntCtrl.n.u8VTPR) … … 2594 2603 2595 2604 return true; 2605 #endif 2596 2606 } 2597 2607 … … 2605 2615 VMM_INT_DECL(uint8_t) CPUMGetSvmNstGstInterrupt(PCCPUMCTX pCtx) 2606 2616 { 2607 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.VmcbCtrl; 2617 #ifdef IN_RC 2618 RT_NOREF(pCtx); 2619 AssertReleaseFailedReturn(0); 2620 #else 2621 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.CTX_SUFF(pVmcb)->ctrl; 2608 2622 return pVmcbCtrl->IntCtrl.n.u8VIntrVector; 2609 } 2610 2623 #endif 2624 } 2625 -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r67723 r67924 762 762 { 763 763 PVMCPU pVCpu = &pVM->aCpus[i]; 764 if (pVCpu->cpum.s.Guest.hwvirt.svm.pVmcbR3) 765 { 766 SUPR3PageFreeEx(pVCpu->cpum.s.Guest.hwvirt.svm.pVmcbR3, SVM_VMCB_PAGES); 767 pVCpu->cpum.s.Guest.hwvirt.svm.pVmcbR3 = NULL; 768 } 769 764 770 if (pVCpu->cpum.s.Guest.hwvirt.svm.pvMsrBitmapR3) 765 771 { … … 793 799 { 794 800 PVMCPU pVCpu = &pVM->aCpus[i]; 801 802 /* 803 * Allocate the nested-guest VMCB. 804 */ 805 Assert(!pVCpu->cpum.s.Guest.hwvirt.svm.pVmcbR3); 806 rc = SUPR3PageAllocEx(SVM_VMCB_PAGES, 0 /* fFlags */, (void **)&pVCpu->cpum.s.Guest.hwvirt.svm.pVmcbR3, 807 (PRTR0PTR)pVCpu->cpum.s.Guest.hwvirt.svm.pVmcbR0, NULL /* paPages */); 808 if (RT_FAILURE(rc)) 809 { 810 Assert(!pVCpu->cpum.s.Guest.hwvirt.svm.pVmcbR3); 811 LogRel(("CPUM%u: Failed to alloc %u pages for the nested-guest's VMCB\n", pVCpu->idCpu, SVM_VMCB_PAGES)); 812 break; 813 } 795 814 796 815 /* … … 1250 1269 */ 1251 1270 /* SVM. */ 1252 RT_ZERO(pCtx->hwvirt.svm.VmcbCtrl);1271 memset(&pCtx->hwvirt.svm, 0, sizeof(pCtx->hwvirt.svm)); 1253 1272 pCtx->hwvirt.svm.fGif = 1; 1254 1273 } … … 2225 2244 pHlp->pfnPrintf(pHlp, " GCPhysVmcb = %#RGp\n", pCtx->hwvirt.svm.GCPhysVmcb); 2226 2245 pHlp->pfnPrintf(pHlp, " VmcbCtrl:\n"); 2227 HMR3InfoSvmVmcbCtrl(pHlp, &pCtx->hwvirt.svm.VmcbCtrl, " " /* pszPrefix */); 2246 HMR3InfoSvmVmcbCtrl(pHlp, &pCtx->hwvirt.svm.pVmcbR3->ctrl, " " /* pszPrefix */); 2247 /** @todo HMR3InfoSvmVmcbStateSave. */ 2228 2248 pHlp->pfnPrintf(pHlp, " HostState:\n"); 2229 2249 pHlp->pfnPrintf(pHlp, " uEferMsr = %#RX64\n", pCtx->hwvirt.svm.HostState.uEferMsr); -
trunk/src/VBox/VMM/include/CPUMInternal.mac
r66667 r67924 231 231 .Guest.abPadding resb 12 232 232 %endif 233 .Guest.hwvirt.svm.uMsrHSavePa resq 1 234 .Guest.hwvirt.svm.GCPhysVmcb resq 1 235 .Guest.hwvirt.svm.VmcbCtrl resb 256 236 .Guest.hwvirt.svm.HostState resb 184 237 .Guest.hwvirt.svm.fGif resb 1 238 .Guest.hwvirt.svm.cPauseFilter resw 1 239 .Guest.hwvirt.svm.cPauseFilterThreshold resw 1 240 .Guest.hwvirt.svm.fInterceptEvents resb 1 241 .Guest.hwvirt.svm.abPadding0 resb 2 242 .Guest.hwvirt.svm.pvMsrBitmapR0 RTR0PTR_RES 1 243 .Guest.hwvirt.svm.pvMsrBitmapR3 RTR3PTR_RES 1 244 .Guest.hwvirt.svm.pvIoBitmapR0 RTR0PTR_RES 1 245 .Guest.hwvirt.svm.pvIoBitmapR3 RTR3PTR_RES 1 233 .Guest.hwvirt.svm.uMsrHSavePa resq 1 234 .Guest.hwvirt.svm.GCPhysVmcb resq 1 235 .Guest.hwvirt.svm.pVmcbR0 RTR0PTR_RES 1 236 .Guest.hwvirt.svm.pVmcbR3 RTR3PTR_RES 1 246 237 %if HC_ARCH_BITS == 32 247 .Guest.hwvirt.svm.abPadding1 resb 16 248 %endif 249 .Guest.hwvirt.fLocalForcedActions resd 1 238 .Guest.hwvirt.svm.abPadding0 resb 8 239 %endif 240 .Guest.hwvirt.svm.HostState resb 184 241 .Guest.hwvirt.svm.fGif resb 1 242 .Guest.hwvirt.svm.cPauseFilter resw 1 243 .Guest.hwvirt.svm.cPauseFilterThreshold resw 1 244 .Guest.hwvirt.svm.fInterceptEvents resb 1 245 .Guest.hwvirt.svm.abPadding1 resb 2 246 .Guest.hwvirt.svm.pvMsrBitmapR0 RTR0PTR_RES 1 247 .Guest.hwvirt.svm.pvMsrBitmapR3 RTR3PTR_RES 1 248 .Guest.hwvirt.svm.pvIoBitmapR0 RTR0PTR_RES 1 249 .Guest.hwvirt.svm.pvIoBitmapR3 RTR3PTR_RES 1 250 %if HC_ARCH_BITS == 32 251 .Guest.hwvirt.svm.abPadding2 resb 16 252 %endif 253 .Guest.hwvirt.fLocalForcedActions resd 1 250 254 alignb 64 251 255 … … 511 515 .Hyper.abPadding resb 12 512 516 %endif 513 .Hyper.hwvirt.svm.uMsrHSavePa resq 1 514 .Hyper.hwvirt.svm.GCPhysVmcb resq 1 515 .Hyper.hwvirt.svm.VmcbCtrl resb 256 516 .Hyper.hwvirt.svm.HostState resb 184 517 .Hyper.hwvirt.svm.fGif resb 1 518 .Hyper.hwvirt.svm.cPauseFilter resw 1 519 .Hyper.hwvirt.svm.cPauseFilterThreshold resw 1 520 .Hyper.hwvirt.svm.fInterceptEvents resb 1 521 .Hyper.hwvirt.svm.abPadding0 resb 2 522 .Hyper.hwvirt.svm.pvMsrBitmapR0 RTR0PTR_RES 1 523 .Hyper.hwvirt.svm.pvMsrBitmapR3 RTR3PTR_RES 1 524 .Hyper.hwvirt.svm.pvIoBitmapR0 RTR0PTR_RES 1 525 .Hyper.hwvirt.svm.pvIoBitmapR3 RTR3PTR_RES 1 517 .Hyper.hwvirt.svm.uMsrHSavePa resq 1 518 .Hyper.hwvirt.svm.GCPhysVmcb resq 1 519 .Hyper.hwvirt.svm.pVmcbR0 RTR0PTR_RES 1 520 .Hyper.hwvirt.svm.pVmcbR3 RTR3PTR_RES 1 526 521 %if HC_ARCH_BITS == 32 527 .Hyper.hwvirt.svm.abPadding1 resb 16 528 %endif 529 .Hyper.hwvirt.fLocalForcedActions resd 1 522 .Hyper.hwvirt.svm.abPadding0 resb 8 523 %endif 524 .Hyper.hwvirt.svm.HostState resb 184 525 .Hyper.hwvirt.svm.fGif resb 1 526 .Hyper.hwvirt.svm.cPauseFilter resw 1 527 .Hyper.hwvirt.svm.cPauseFilterThreshold resw 1 528 .Hyper.hwvirt.svm.fInterceptEvents resb 1 529 .Hyper.hwvirt.svm.abPadding1 resb 2 530 .Hyper.hwvirt.svm.pvMsrBitmapR0 RTR0PTR_RES 1 531 .Hyper.hwvirt.svm.pvMsrBitmapR3 RTR3PTR_RES 1 532 .Hyper.hwvirt.svm.pvIoBitmapR0 RTR0PTR_RES 1 533 .Hyper.hwvirt.svm.pvIoBitmapR3 RTR3PTR_RES 1 534 %if HC_ARCH_BITS == 32 535 .Hyper.hwvirt.svm.abPadding2 resb 16 536 %endif 537 .Hyper.hwvirt.fLocalForcedActions resd 1 530 538 alignb 64 531 539 -
trunk/src/VBox/VMM/testcase/tstVMStruct.h
r67669 r67924 134 134 GEN_CHECK_OFF(CPUMCTX, hwvirt.svm.uMsrHSavePa); 135 135 GEN_CHECK_OFF(CPUMCTX, hwvirt.svm.GCPhysVmcb); 136 GEN_CHECK_OFF(CPUMCTX, hwvirt.svm.VmcbCtrl); 136 GEN_CHECK_OFF(CPUMCTX, hwvirt.svm.pVmcbR0); 137 GEN_CHECK_OFF(CPUMCTX, hwvirt.svm.pVmcbR3); 137 138 GEN_CHECK_OFF(CPUMCTX, hwvirt.svm.HostState); 138 139 GEN_CHECK_OFF(CPUMCTX, hwvirt.svm.fGif);
Note:
See TracChangeset
for help on using the changeset viewer.