VirtualBox

Changeset 74337 in vbox for trunk/include


Ignore:
Timestamp:
Sep 18, 2018 9:51:21 AM (6 years ago)
Author:
vboxsync
Message:

VMM/IEM: Nested VMX: bugref:9180 vmlaunch/vmresume bits.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/cpumctx.h

    r74303 r74337  
    544544                /** 0x2e8 - Guest physical address of the current VMCS pointer. */
    545545                RTGCPHYS                GCPhysVmcs;
    546                 /** 0x2f0 - Last emulated VMX instruction/VM-exit diagnostic. */
     546                /** 0x2f0 - Guest physical address of the shadow VMCS pointer. */
     547                RTGCPHYS                GCPhysShadowVmcs;
     548                /** 0x2f8 - Last emulated VMX instruction/VM-exit diagnostic. */
    547549                VMXVDIAG                enmDiag;
    548                 /** 0x2f4 - Whether the guest is in VMX root mode. */
     550                /** 0x2fc - Whether the guest is in VMX root mode. */
    549551                bool                    fInVmxRootMode;
    550                 /** 0x2f5 - Whether the guest is in VMX non-root mode. */
     552                /** 0x2fd - Whether the guest is in VMX non-root mode. */
    551553                bool                    fInVmxNonRootMode;
    552                 /** 0x2f6 - Whether the injected events are subjected to event intercepts.  */
     554                /** 0x2fe - Whether the injected events are subjected to event intercepts.  */
    553555                bool                    fInterceptEvents;
    554                 bool                    afPadding[1];
    555                 /** 0x2f8 - Cache of the nested-guest current VMCS - R0 ptr. */
     556                bool                    fPadding0;
     557                /** 0x300 - Cache of the nested-guest current VMCS - R0 ptr. */
    556558                R0PTRTYPE(PVMXVVMCS)    pVmcsR0;
    557559#if HC_ARCH_BITS == 32
    558560                uint32_t                uVmcsR0Padding;
    559561#endif
    560                 /** 0x300 - Cache of the nested-guest curent VMCS - R3 ptr. */
     562                /** 0x308 - Cache of the nested-guest curent VMCS - R3 ptr. */
    561563                R3PTRTYPE(PVMXVVMCS)    pVmcsR3;
    562564#if HC_ARCH_BITS == 32
    563565                uint32_t                uVmcsR3Padding;
    564566#endif
    565                 /** 0X308 - Cache of the nested-guest shadow VMCS - R0 ptr. */
     567                /** 0X310 - Cache of the nested-guest shadow VMCS - R0 ptr. */
    566568                R0PTRTYPE(PVMXVVMCS)    pShadowVmcsR0;
    567569#if HC_ARCH_BITS == 32
    568570                uint32_t                uShadowVmcsR0Padding;
    569571#endif
    570                 /** 0x310 - Cache of the nested-guest shadow VMCS - R3 ptr. */
     572                /** 0x318 - Cache of the nested-guest shadow VMCS - R3 ptr. */
    571573                R3PTRTYPE(PVMXVVMCS)    pShadowVmcsR3;
    572574#if HC_ARCH_BITS == 32
    573575                uint32_t                uShadowVmcsR3Padding;
    574576#endif
    575                 /** 0x318 - Cache of the nested-guest Virtual-APIC page - R0 ptr. */
     577                /** 0x320 - Cache of the nested-guest Virtual-APIC page - R0 ptr. */
    576578                R0PTRTYPE(void *)       pvVirtApicPageR0;
    577579#if HC_ARCH_BITS == 32
    578580                uint32_t                uVirtApicPageR0Padding;
    579581#endif
    580                 /** 0x320 - Cache of the nested-guest Virtual-APIC page - R3 ptr. */
     582                /** 0x328 - Cache of the nested-guest Virtual-APIC page - R3 ptr. */
    581583                R3PTRTYPE(void *)       pvVirtApicPageR3;
    582584#if HC_ARCH_BITS == 32
    583585                uint32_t                uVirtApicPageR3Padding;
    584586#endif
    585                 /** 0x328 - Cache of the nested-guest VMREAD-bitmap - R0 ptr. */
     587                /** 0x330 - Cache of the nested-guest VMREAD-bitmap - R0 ptr. */
    586588                R0PTRTYPE(void *)       pvVmreadBitmapR0;
    587589#if HC_ARCH_BITS == 32
    588590                uint32_t                uVmreadBitmapR0Padding;
    589591#endif
    590                 /** 0x330 - Cache of the nested-guest VMREAD-bitmap - R3 ptr. */
     592                /** 0x338 - Cache of the nested-guest VMREAD-bitmap - R3 ptr. */
    591593                R3PTRTYPE(void *)       pvVmreadBitmapR3;
    592594#if HC_ARCH_BITS == 32
    593595                uint32_t                uVmreadBitmapR3Padding;
    594596#endif
    595                 /** 0x338 - Cache of the nested-guest VMWRITE-bitmap - R0 ptr. */
     597                /** 0x340 - Cache of the nested-guest VMWRITE-bitmap - R0 ptr. */
    596598                R0PTRTYPE(void *)       pvVmwriteBitmapR0;
    597599#if HC_ARCH_BITS == 32
    598600                uint32_t                uVmwriteBitmapR0Padding;
    599601#endif
    600                 /** 0x340 - Cache of the nested-guest VMWRITE-bitmap - R3 ptr. */
     602                /** 0x348 - Cache of the nested-guest VMWRITE-bitmap - R3 ptr. */
    601603                R3PTRTYPE(void *)       pvVmwriteBitmapR3;
    602604#if HC_ARCH_BITS == 32
    603605                uint32_t                uVmwriteBitmapR3Padding;
    604606#endif
    605                 /** 0x348 - The MSR auto-load/store area - R0 ptr. */
     607                /** 0x350 - The MSR auto-load/store area - R0 ptr. */
    606608                R0PTRTYPE(PVMXAUTOMSR)  pAutoMsrAreaR0;
    607609#if HC_ARCH_BITS == 32
    608610                uint32_t                uAutoMsrAreaR0;
    609611#endif
    610                 /** 0x350 - The MSR auto-load/store area - R3 ptr. */
     612                /** 0x358 - The MSR auto-load/store area - R3 ptr. */
    611613                R3PTRTYPE(PVMXAUTOMSR)  pAutoMsrAreaR3;
    612614#if HC_ARCH_BITS == 32
    613615                uint32_t                uAutoMsrAreaR3;
    614616#endif
    615                 /** 0x358 - Padding. */
    616                 uint8_t             abPadding[0x3f0 - 0x358];
     617                /** 0x360 - Padding. */
     618                uint8_t             abPadding[0x3f0 - 0x360];
    617619            } vmx;
    618620        } CPUM_UNION_NM(s);
     
    690692AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvIoBitmapR3,           0x3e0);
    691693AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.HCPhysVmcb,             0x3e8);
    692 AssertCompileMemberOffset(CPUMCTX, hwvirt.uInhibitRip,         0x3f0);
    693 AssertCompileMemberOffset(CPUMCTX, hwvirt.fLocalForcedActions, 0x3f8);
    694 AssertCompileMemberOffset(CPUMCTX, hwvirt.fGif,                0x3fc);
    695694AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pVmcbR0,       8);
    696695AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvMsrBitmapR0, 8);
     
    698697AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.GCPhysVmxon,            0x2e0);
    699698AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.GCPhysVmcs,             0x2e8);
    700 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.enmDiag,                0x2f0);
    701 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxRootMode,         0x2f4);
    702 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxNonRootMode,      0x2f5);
    703 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR0,                0x2f8);
    704 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR3,                0x300);
    705 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR0,          0x308);
    706 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR3,          0x310);
    707 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR0,       0x318);
    708 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR3,       0x320);
    709 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR0,       0x328);
    710 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR3,       0x330);
    711 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR0,      0x338);
    712 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR3,      0x340);
     699AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.GCPhysShadowVmcs,       0x2f0);
     700AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.enmDiag,                0x2f8);
     701AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxRootMode,         0x2fc);
     702AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxNonRootMode,      0x2fd);
     703AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInterceptEvents,       0x2fe);
     704AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR0,                0x300);
     705AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR3,                0x308);
     706AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR0,          0x310);
     707AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR3,          0x318);
     708AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR0,       0x320);
     709AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR3,       0x328);
     710AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR0,       0x330);
     711AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR3,       0x338);
     712AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR0,      0x340);
     713AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR3,      0x348);
     714AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR0,         0x350);
     715AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR3,         0x358);
    713716AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR0,           8);
    714717AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR0,     8);
     
    716719AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR0,  8);
    717720AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmwriteBitmapR0, 8);
     721AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR0,    8);
     722AssertCompileMemberOffset(CPUMCTX, hwvirt.uInhibitRip,         0x3f0);
     723AssertCompileMemberOffset(CPUMCTX, hwvirt.fLocalForcedActions, 0x3f8);
     724AssertCompileMemberOffset(CPUMCTX, hwvirt.fGif,                0x3fc);
    718725AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_NM(g.) aGRegs);
    719726AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.)  r0);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette