VirtualBox

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


Ignore:
Timestamp:
Jan 17, 2022 11:15:12 AM (3 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:10092 True VMX controls MSR support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp

    r93115 r93268  
    17621762
    17631763    /* Basic information. */
     1764    bool const fVmxTrueMsrs = RT_BOOL(pVmxMsrs->u64Basic & VMX_BF_BASIC_TRUE_CTLS_MASK);
    17641765    {
    17651766        uint64_t const u64Basic = pVmxMsrs->u64Basic;
     
    17691770    /* Pin-based VM-execution controls. */
    17701771    {
    1771         uint32_t const fPinCtls = pVmxMsrs->PinCtls.n.allowed1;
     1772        uint32_t const fPinCtls = fVmxTrueMsrs ? pVmxMsrs->TruePinCtls.n.allowed1 : pVmxMsrs->PinCtls.n.allowed1;
    17721773        pFeatures->fVmxExtIntExit            = RT_BOOL(fPinCtls & VMX_PIN_CTLS_EXT_INT_EXIT);
    17731774        pFeatures->fVmxNmiExit               = RT_BOOL(fPinCtls & VMX_PIN_CTLS_NMI_EXIT);
     
    17791780    /* Processor-based VM-execution controls. */
    17801781    {
    1781         uint32_t const fProcCtls = pVmxMsrs->ProcCtls.n.allowed1;
     1782        uint32_t const fProcCtls = fVmxTrueMsrs ? pVmxMsrs->TrueProcCtls.n.allowed1 : pVmxMsrs->ProcCtls.n.allowed1;
    17821783        pFeatures->fVmxIntWindowExit         = RT_BOOL(fProcCtls & VMX_PROC_CTLS_INT_WINDOW_EXIT);
    17831784        pFeatures->fVmxTscOffsetting         = RT_BOOL(fProcCtls & VMX_PROC_CTLS_USE_TSC_OFFSETTING);
     
    18431844    /* VM-exit controls. */
    18441845    {
    1845         uint32_t const fExitCtls = pVmxMsrs->ExitCtls.n.allowed1;
     1846        uint32_t const fExitCtls = fVmxTrueMsrs ? pVmxMsrs->TrueExitCtls.n.allowed1 : pVmxMsrs->ExitCtls.n.allowed1;
    18461847        pFeatures->fVmxExitSaveDebugCtls     = RT_BOOL(fExitCtls & VMX_EXIT_CTLS_SAVE_DEBUG);
    18471848        pFeatures->fVmxHostAddrSpaceSize     = RT_BOOL(fExitCtls & VMX_EXIT_CTLS_HOST_ADDR_SPACE_SIZE);
     
    18561857    /* VM-entry controls. */
    18571858    {
    1858         uint32_t const fEntryCtls = pVmxMsrs->EntryCtls.n.allowed1;
     1859        uint32_t const fEntryCtls = fVmxTrueMsrs ? pVmxMsrs->TrueEntryCtls.n.allowed1 : pVmxMsrs->EntryCtls.n.allowed1;
    18591860        pFeatures->fVmxEntryLoadDebugCtls    = RT_BOOL(fEntryCtls & VMX_ENTRY_CTLS_LOAD_DEBUG);
    18601861        pFeatures->fVmxIa32eModeGuest        = RT_BOOL(fEntryCtls & VMX_ENTRY_CTLS_IA32E_MODE_GUEST);
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