VirtualBox

Changeset 77715 in vbox for trunk


Ignore:
Timestamp:
Mar 15, 2019 8:18:52 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
129360
Message:

HMInternal.h: Nested VMX: bugref:9180 Add VMXVMCSINFO for upcoming changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/HMInternal.h

    r77714 r77715  
    712712typedef const VMXVMCSCTLSCACHE *PCVMXVMCSCTLSCACHE;
    713713AssertCompileSizeAlignment(VMXVMCSCTLSCACHE, 8);
     714
     715/**
     716 * VMX VMCS information.
     717 *
     718 * This structure provides information maintained for and during the executing of a
     719 * guest (or nested-guest) VMCS (VM control structure) using hardware-assisted VMX.
     720 */
     721typedef struct VMXVMCSINFO
     722{
     723    /** @name VMCS and related data structures.
     724     *  @{ */
     725    /** Host-physical address of the VMCS. */
     726    RTHCPHYS                    HCPhysVmcs;
     727    /** R0 memory object for the VMCS. */
     728    RTR0MEMOBJ                  hMemObjVmcs;
     729    /** Host-virtual address of the VMCS. */
     730    R0PTRTYPE(void *)           pvVmcs;
     731
     732    /** Host-physical address of the virtual APIC page. */
     733    RTHCPHYS                    HCPhysVirtApic;
     734    /** Padding. */
     735    R0PTRTYPE(void *)           pvAlignment0;
     736    /** Host-virtual address of the virtual-APIC page. */
     737    R0PTRTYPE(uint8_t *)        pbVirtApic;
     738
     739    /** Host-physical address of the MSR bitmap. */
     740    RTHCPHYS                    HCPhysMsrBitmap;
     741    /** R0 memory object for the MSR bitmap. */
     742    RTR0MEMOBJ                  hMemObjMsrBitmap;
     743    /** Host-virtual address of the MSR bitmap. */
     744    R0PTRTYPE(void *)           pvMsrBitmap;
     745
     746    /** Host-physical address of the VM-entry MSR-load and VM-exit MSR-store area. */
     747    RTHCPHYS                    HCPhysGuestMsr;
     748    /** R0 memory object of the VM-entry MSR-load and VM-exit MSR-store area. */
     749    RTR0MEMOBJ                  hMemObjGuestMsr;
     750    /** Host-virtual address of the VM-entry MSR-load and VM-exit MSR-store area. */
     751    R0PTRTYPE(void *)           pvGuestMsr;
     752
     753    /** Host-physical address of the VM-exit MSR-load area. */
     754    RTHCPHYS                    HCPhysHostMsr;
     755    /** R0 memory object for the VM-exit MSR-load area. */
     756    RTR0MEMOBJ                  hMemObjHostMsr;
     757    /** Host-virtual address of the VM-exit MSR-load area. */
     758    R0PTRTYPE(void *)           pvHostMsr;
     759
     760    /** Host-physical address of the EPTP. */
     761    RTHCPHYS                    HCPhysEPTP;
     762    /** @} */
     763
     764    /** @name Auxiliary information.
     765     * @{ */
     766    /** Number of guest/host MSR pairs in the auto-load/store area. */
     767    uint32_t                    cMsrs;
     768    /** The VMCS state, see VMX_V_VMCS_STATE_XXX. */
     769    uint32_t                    fVmcsState;
     770    /** @} */
     771
     772    /** @name Cache of execution related VMCS fields.
     773     *  @{ */
     774    /** Pin-based VM-execution controls. */
     775    uint32_t                    u32PinCtls;
     776    /** Processor-based VM-execution controls. */
     777    uint32_t                    u32ProcCtls;
     778    /** Secondary processor-based VM-execution controls. */
     779    uint32_t                    u32ProcCtls2;
     780    /** VM-entry controls. */
     781    uint32_t                    u32EntryCtls;
     782    /** VM-exit controls. */
     783    uint32_t                    u32ExitCtls;
     784    /** CR0 guest/host mask. */
     785    uint32_t                    u32Cr0Mask;
     786    /** CR4 guset/host mask. */
     787    uint32_t                    u32Cr4Mask;
     788    /** Exception bitmap. */
     789    uint32_t                    u32XcptBitmap;
     790    /** TSC offset. */
     791    uint64_t                    u64TscOffset;
     792    /** @} */
     793
     794    /** Padding. */
     795    uint64_t                    u64Padding[4];
     796} VMXVMCSINFO;
     797/** Pointer to a VMXVMCSINFO struct. */
     798typedef VMXVMCSINFO *PVMXVMCSINFO;
     799/** Pointer to a VMXVMCSINFO struct. */
     800typedef const VMXVMCSINFO *PCVMXVMCSINFO;
     801AssertCompileSizeAlignment(VMXVMCSINFO, 8);
     802AssertCompileSize(VMXVMCSINFO, 208);
    714803
    715804/**
Note: See TracChangeset for help on using the changeset viewer.

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