Changeset 74389 in vbox for trunk/include/VBox
- Timestamp:
- Sep 20, 2018 4:25:26 PM (6 years ago)
- Location:
- trunk/include/VBox
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/err.h
r74043 r74389 2102 2102 /** Generic VM-entry failure. */ 2103 2103 #define VERR_VMX_VMENTRY_FAILED (-4033) 2104 /** Generic VM-exit failure. */ 2105 #define VERR_VMX_VMEXIT_FAILED (-4034) 2104 2106 /** @} */ 2105 2107 -
trunk/include/VBox/vmm/cpumctx.h
r74337 r74389 548 548 /** 0x2f8 - Last emulated VMX instruction/VM-exit diagnostic. */ 549 549 VMXVDIAG enmDiag; 550 /** 0x2fc - Whether the guest is in VMX root mode. */ 550 /** 0x2fc - VMX abort reason. */ 551 VMXABORT enmAbort; 552 /** 0x300 - VMX abort auxiliary information field. */ 553 uint32_t uAbortAux; 554 /** 0x304 - Whether the guest is in VMX root mode. */ 551 555 bool fInVmxRootMode; 552 /** 0x 2fd- Whether the guest is in VMX non-root mode. */556 /** 0x305 - Whether the guest is in VMX non-root mode. */ 553 557 bool fInVmxNonRootMode; 554 /** 0x 2fe- Whether the injected events are subjected to event intercepts. */558 /** 0x306 - Whether the injected events are subjected to event intercepts. */ 555 559 bool fInterceptEvents; 556 bool fPadding0;557 /** 0x30 0- Cache of the nested-guest current VMCS - R0 ptr. */560 bool afPadding0[1]; 561 /** 0x308 - Cache of the nested-guest current VMCS - R0 ptr. */ 558 562 R0PTRTYPE(PVMXVVMCS) pVmcsR0; 559 563 #if HC_ARCH_BITS == 32 560 564 uint32_t uVmcsR0Padding; 561 565 #endif 562 /** 0x3 08- Cache of the nested-guest curent VMCS - R3 ptr. */566 /** 0x310 - Cache of the nested-guest curent VMCS - R3 ptr. */ 563 567 R3PTRTYPE(PVMXVVMCS) pVmcsR3; 564 568 #if HC_ARCH_BITS == 32 565 569 uint32_t uVmcsR3Padding; 566 570 #endif 567 /** 0X31 0- Cache of the nested-guest shadow VMCS - R0 ptr. */571 /** 0X318 - Cache of the nested-guest shadow VMCS - R0 ptr. */ 568 572 R0PTRTYPE(PVMXVVMCS) pShadowVmcsR0; 569 573 #if HC_ARCH_BITS == 32 570 574 uint32_t uShadowVmcsR0Padding; 571 575 #endif 572 /** 0x3 18- Cache of the nested-guest shadow VMCS - R3 ptr. */576 /** 0x320 - Cache of the nested-guest shadow VMCS - R3 ptr. */ 573 577 R3PTRTYPE(PVMXVVMCS) pShadowVmcsR3; 574 578 #if HC_ARCH_BITS == 32 575 579 uint32_t uShadowVmcsR3Padding; 576 580 #endif 577 /** 0x32 0- Cache of the nested-guest Virtual-APIC page - R0 ptr. */581 /** 0x328 - Cache of the nested-guest Virtual-APIC page - R0 ptr. */ 578 582 R0PTRTYPE(void *) pvVirtApicPageR0; 579 583 #if HC_ARCH_BITS == 32 580 584 uint32_t uVirtApicPageR0Padding; 581 585 #endif 582 /** 0x3 28- Cache of the nested-guest Virtual-APIC page - R3 ptr. */586 /** 0x330 - Cache of the nested-guest Virtual-APIC page - R3 ptr. */ 583 587 R3PTRTYPE(void *) pvVirtApicPageR3; 584 588 #if HC_ARCH_BITS == 32 585 589 uint32_t uVirtApicPageR3Padding; 586 590 #endif 587 /** 0x33 0- Cache of the nested-guest VMREAD-bitmap - R0 ptr. */591 /** 0x338 - Cache of the nested-guest VMREAD-bitmap - R0 ptr. */ 588 592 R0PTRTYPE(void *) pvVmreadBitmapR0; 589 593 #if HC_ARCH_BITS == 32 590 594 uint32_t uVmreadBitmapR0Padding; 591 595 #endif 592 /** 0x3 38- Cache of the nested-guest VMREAD-bitmap - R3 ptr. */596 /** 0x340 - Cache of the nested-guest VMREAD-bitmap - R3 ptr. */ 593 597 R3PTRTYPE(void *) pvVmreadBitmapR3; 594 598 #if HC_ARCH_BITS == 32 595 599 uint32_t uVmreadBitmapR3Padding; 596 600 #endif 597 /** 0x34 0- Cache of the nested-guest VMWRITE-bitmap - R0 ptr. */601 /** 0x348 - Cache of the nested-guest VMWRITE-bitmap - R0 ptr. */ 598 602 R0PTRTYPE(void *) pvVmwriteBitmapR0; 599 603 #if HC_ARCH_BITS == 32 600 604 uint32_t uVmwriteBitmapR0Padding; 601 605 #endif 602 /** 0x3 48- Cache of the nested-guest VMWRITE-bitmap - R3 ptr. */606 /** 0x350 - Cache of the nested-guest VMWRITE-bitmap - R3 ptr. */ 603 607 R3PTRTYPE(void *) pvVmwriteBitmapR3; 604 608 #if HC_ARCH_BITS == 32 605 609 uint32_t uVmwriteBitmapR3Padding; 606 610 #endif 607 /** 0x35 0- The MSR auto-load/store area - R0 ptr. */611 /** 0x358 - The MSR auto-load/store area - R0 ptr. */ 608 612 R0PTRTYPE(PVMXAUTOMSR) pAutoMsrAreaR0; 609 613 #if HC_ARCH_BITS == 32 610 614 uint32_t uAutoMsrAreaR0; 611 615 #endif 612 /** 0x3 58- The MSR auto-load/store area - R3 ptr. */616 /** 0x360 - The MSR auto-load/store area - R3 ptr. */ 613 617 R3PTRTYPE(PVMXAUTOMSR) pAutoMsrAreaR3; 614 618 #if HC_ARCH_BITS == 32 615 619 uint32_t uAutoMsrAreaR3; 616 620 #endif 617 /** 0x36 0- Padding. */618 uint8_t abPadding[0x3f0 - 0x36 0];621 /** 0x368 - Padding. */ 622 uint8_t abPadding[0x3f0 - 0x368]; 619 623 } vmx; 620 624 } CPUM_UNION_NM(s); … … 699 703 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.GCPhysShadowVmcs, 0x2f0); 700 704 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.enmDiag, 0x2f8); 701 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxRootMode, 0x2fc); 702 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxNonRootMode, 0x2fd); 703 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInterceptEvents, 0x2fe); 704 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR0, 0x300); 705 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR3, 0x308); 706 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR0, 0x310); 707 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR3, 0x318); 708 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR0, 0x320); 709 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR3, 0x328); 710 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR0, 0x330); 711 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR3, 0x338); 712 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR0, 0x340); 713 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR3, 0x348); 714 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR0, 0x350); 715 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR3, 0x358); 705 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.enmAbort, 0x2fc); 706 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.uAbortAux, 0x300); 707 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxRootMode, 0x304); 708 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxNonRootMode, 0x305); 709 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInterceptEvents, 0x306); 710 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR0, 0x308); 711 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR3, 0x310); 712 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR0, 0x318); 713 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR3, 0x320); 714 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR0, 0x328); 715 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR3, 0x330); 716 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR0, 0x338); 717 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR3, 0x340); 718 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR0, 0x348); 719 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR3, 0x350); 720 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR0, 0x358); 721 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR3, 0x360); 716 722 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR0, 8); 717 723 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR0, 8); -
trunk/include/VBox/vmm/hm.h
r74287 r74389 136 136 VMM_INT_DECL(bool) HMIsVmxSupported(PVM pVM); 137 137 VMM_INT_DECL(const char *) HMVmxGetDiagDesc(VMXVDIAG enmDiag); 138 VMM_INT_DECL(const char *) HMVmxGetAbortDesc(VMXABORT enmAbort); 138 139 VMM_INT_DECL(void) HMHCPagingModeChanged(PVM pVM, PVMCPU pVCpu, PGMMODE enmShadowMode, PGMMODE enmGuestMode); 139 140 /** @} */ -
trunk/include/VBox/vmm/hm_vmx.h
r74381 r74389 1353 1353 /** @name VMX abort reasons. 1354 1354 * See Intel spec. "27.7 VMX Aborts". 1355 * Update HMVmxGetAbortDesc() if new reasons are added. 1355 1356 * @{ 1356 1357 */ 1357 1358 typedef enum 1358 1359 { 1360 /** None - don't use this / uninitialized value. */ 1361 VMXABORT_NONE = 0, 1362 /** VMX abort caused during saving of guest MSRs. */ 1359 1363 VMXABORT_SAVE_GUEST_MSRS = 1, 1364 /** VMX abort caused during host PDPTE checks. */ 1360 1365 VMXBOART_HOST_PDPTE = 2, 1366 /** VMX abort caused due to current VMCS being corrupted. */ 1361 1367 VMXABORT_CURRENT_VMCS_CORRUPT = 3, 1368 /** VMX abort caused during loading of host MSRs. */ 1362 1369 VMXABORT_LOAD_HOST_MSR = 4, 1370 /** VMX abort caused due to a machine-check exception during VM-exit. */ 1363 1371 VMXABORT_MACHINE_CHECK_XCPT = 5, 1364 VMXABORT_HOST_LONG_MODE = 6 1372 /** VMX abort caused due to invalid return to long mode. */ 1373 VMXABORT_HOST_LONG_MODE = 6, 1374 /* Type size hack. */ 1375 VMXABORT_32BIT_HACK = 0x7fffffff 1365 1376 } VMXABORT; 1377 AssertCompileSize(VMXABORT, 4); 1366 1378 /** @} */ 1367 1379 … … 3822 3834 kVmxVDiag_Vmentry_VmxRoot, 3823 3835 kVmxVDiag_Vmentry_Vpid, 3836 kVmxVDiag_Vmexit_MsrStore, 3837 kVmxVDiag_Vmexit_MsrStoreCount, 3838 kVmxVDiag_Vmexit_MsrStorePtrReadPhys, 3839 kVmxVDiag_Vmexit_MsrStoreRing3, 3840 kVmxVDiag_Vmexit_MsrStoreRsvd, 3824 3841 /* Last member for determining array index limit. */ 3825 3842 kVmxVDiag_End
Note:
See TracChangeset
for help on using the changeset viewer.