VirtualBox

Changeset 73885 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Aug 25, 2018 4:00:00 AM (6 years ago)
Author:
vboxsync
Message:

VMM/HM, IEM: Nested VMX: bugref:9180 Implement VMCLEAR instruction, fix typos and missing enum defines for instruction diagnostics.

File:
1 edited

Legend:

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

    r73868 r73885  
    28622862    kVmxVInstrDiag_Vmptrst_Cpl,
    28632863    kVmxVInstrDiag_Vmptrst_PtrMap,
     2864    kVmxVInstrDiag_Vmptrst_Success,
    28642865    /* VMCLEAR. */
    28652866    kVmxVInstrDiag_Vmclear_Cpl,
     2867    kVmxVInstrDiag_Vmclear_PtrAbnormal,
     2868    kVmxVInstrDiag_Vmclear_PtrAlign,
     2869    kVmxVInstrDiag_Vmclear_PtrMap,
     2870    kVmxVInstrDiag_Vmclear_PtrReadPhys,
     2871    kVmxVInstrDiag_Vmclear_PtrVmxon,
     2872    kVmxVInstrDiag_Vmclear_PtrWidth,
     2873    kVmxVInstrDiag_Vmclear_Success,
    28662874    /* Last member for determining array index limit. */
    28672875    kVmxVInstrDiag_Last
    28682876} VMXVINSTRDIAG;
    28692877AssertCompileSize(VMXVINSTRDIAG, 4);
     2878
     2879/** @name VMX_V_VMCS_STATE_XXX - Virtual VMCS state.
     2880 * @{ */
     2881/** VMCS state clear. */
     2882#define VMX_V_VMCS_STATE_CLEAR          RT_BIT(0)
     2883/** VMCS state launched. */
     2884#define VMX_V_VMCS_STATE_LAUNCHED       RT_BIT(1)
     2885/** @} */
    28702886
    28712887/**
     
    28762892 * The first 8 bytes are as per Intel spec. 24.2 "Format of the VMCS Region".
    28772893 *
     2894 * The offset and size of the VMCS state field (fVmcsState) is also fixed as we use
     2895 * it to offset into guest memory.
     2896 *
    28782897 * Although the guest is supposed to access the VMCS only through the execution of
    28792898 * VMX instructions (VMREAD, VMWRITE etc.), since the VMCS may reside in guest
     
    28892908    /** 0x4 - VMX-abort indicator. */
    28902909    uint32_t        u32VmxAbortId;
    2891     /** 0x8 - Reserved for future. */
    2892     uint32_t        au32Reserved0[8];
     2910    /** 0x8 - VMCS state, see VMX_V_VMCS_STATE_XXX. */
     2911    uint8_t         fVmcsState;
     2912    /** 0x9 - Reserved for future. */
     2913    uint8_t         au8Padding0[3];
     2914    /** 0xc - Reserved for future. */
     2915    uint32_t        au32Reserved0[7];
    28932916
    28942917    /** @name 16-bit control fields.
     
    33003323typedef const VMXVVMCS *PCVMXVVMCS;
    33013324AssertCompileSize(VMXVVMCS, X86_PAGE_4K_SIZE);
     3325AssertCompileMemberSize(VMXVVMCS, fVmcsState, sizeof(uint8_t));
    33023326AssertCompileMemberOffset(VMXVVMCS, u32VmxAbortId,      0x004);
     3327AssertCompileMemberOffset(VMXVVMCS, fVmcsState,         0x008);
    33033328AssertCompileMemberOffset(VMXVVMCS, u16Vpid,            0x028);
    33043329AssertCompileMemberOffset(VMXVVMCS, GuestEs,            0x03e);
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