VirtualBox

Changeset 76548 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Dec 31, 2018 4:05:16 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
127850
Message:

VMM/CPUM: Add functions for getting guest CR0, CR4 valid bits mask, in preparation for upcoming changes to nested VMX code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp

    r75831 r76548  
    30613061}
    30623062
     3063
     3064/**
     3065 * Gets valid CR4 bits for the guest.
     3066 *
     3067 * @returns Valid CR4 bits.
     3068 * @param   pVM     The cross context VM structure.
     3069 */
     3070VMM_INT_DECL(uint64_t) CPUMGetGuestCR4ValidMask(PVM pVM)
     3071{
     3072    PCCPUMFEATURES pGuestFeatures = &pVM->cpum.s.GuestFeatures;
     3073    uint64_t fMask = X86_CR4_VME | X86_CR4_PVI
     3074                   | X86_CR4_TSD | X86_CR4_DE
     3075                   | X86_CR4_PSE | X86_CR4_PAE
     3076                   | X86_CR4_MCE | X86_CR4_PGE
     3077                   | X86_CR4_PCE
     3078                   | X86_CR4_OSXMMEEXCPT;  /** @todo r=ramshankar: Introduced in Pentium III along with SSE. Check fSse here? */
     3079    if (pGuestFeatures->fFxSaveRstor)
     3080        fMask |= X86_CR4_OSFXSR;
     3081    if (pGuestFeatures->fVmx)
     3082        fMask |= X86_CR4_VMXE;
     3083    if (pGuestFeatures->fXSaveRstor)
     3084        fMask |= X86_CR4_OSXSAVE;
     3085    if (pGuestFeatures->fPcid)
     3086        fMask |= X86_CR4_PCIDE;
     3087    if (pGuestFeatures->fFsGsBase)
     3088        fMask |= X86_CR4_FSGSBASE;
     3089    return fMask;
     3090}
     3091
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