VirtualBox

Changeset 73246 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
Jul 19, 2018 3:51:20 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123852
Message:

PGM: Working on eliminating PGMMODEDATA and the corresponding PGMCPU section so we can do mode switching in ring-0. This second part deals with shadow paging pointers and expands PGM_TYPE_NESTED & PGMMODE_NESTED into 32BIT, PAE and AMD64 variants to better map to reality at the expense of a little bit of more code. bugref:9044

Location:
trunk/include/VBox/vmm
Files:
2 edited

Legend:

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

    r73203 r73246  
    132132VMM_INT_DECL(int)               HMAmdIsSubjectToErratum170(uint32_t *pu32Family, uint32_t *pu32Model, uint32_t *pu32Stepping);
    133133VMM_INT_DECL(bool)              HMSetSingleInstruction(PVM pVM, PVMCPU pVCpu, bool fEnable);
     134VMM_INT_DECL(bool)              HMIsSvmActive(PVM pVM);
     135VMM_INT_DECL(bool)              HMIsVmxActive(PVM pVM);
    134136/** @} */
    135137
     
    157159VMM_INT_DECL(bool)              HMIsLongModeAllowed(PVM pVM);
    158160VMM_INT_DECL(bool)              HMAreMsrBitmapsAvailable(PVM pVM);
    159 VMM_INT_DECL(PGMMODE)           HMGetShwPagingMode(PVM pVM);
    160161VMM_INT_DECL(bool)              HMSvmIsVGifActive(PVM pVM);
    161162VMM_INT_DECL(uint64_t)          HMSvmNstGstApplyTscOffset(PVMCPU pVCpu, uint64_t uTicks);
  • trunk/include/VBox/vmm/pgm.h

    r72265 r73246  
    351351    /** 64-bit AMD paging (long mode) with NX enabled. */
    352352    PGMMODE_AMD64_NX,
    353     /** Nested paging mode (shadow only; guest physical to host physical). */
    354     PGMMODE_NESTED,
     353    /** 32-bit nested paging mode (shadow only; guest physical to host physical). */
     354    PGMMODE_NESTED_32BIT,
     355    /** PAE nested paging mode (shadow only; guest physical to host physical). */
     356    PGMMODE_NESTED_PAE,
     357    /** AMD64 nested paging mode (shadow only; guest physical to host physical). */
     358    PGMMODE_NESTED_AMD64,
    355359    /** Extended paging (Intel) mode. */
    356360    PGMMODE_EPT,
     
    371375 */
    372376#define PGMMODE_IS_LONG_MODE(enmMode) ((enmMode) == PGMMODE_AMD64_NX || (enmMode) == PGMMODE_AMD64)
     377
     378/** Macro for checking if it's one of the AMD64 nested modes.
     379 * @param enmMode   PGMMODE_*.
     380 */
     381#define PGMMODE_IS_NESTED(enmMode)  (   (enmMode) == PGMMODE_NESTED_32BIT \
     382                                     || (enmMode) == PGMMODE_NESTED_PAE \
     383                                     || (enmMode) == PGMMODE_NESTED_AMD64)
    373384
    374385/**
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