VirtualBox

Changeset 73274 in vbox for trunk/src/VBox/VMM/VMMAll


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

VMM: Nested VMX: bugref:9180 Reports bits of IA32_FEATURE_CONTROL, start implementing IA32_VMX_BASIC MSRs, cleanups.

File:
1 edited

Legend:

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

    r73257 r73274  
    2424#include <VBox/vmm/apic.h>
    2525#include <VBox/vmm/hm.h>
     26#include <VBox/vmm/hm_vmx.h>
    2627#include <VBox/vmm/tm.h>
    2728#include <VBox/vmm/gim.h>
     
    12901291static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxBasic(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue)
    12911292{
    1292     RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange);
    1293     *puValue = 0;
     1293    RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange);
     1294    if (pVCpu->CTX_SUFF(pVM)->cpum.s.GuestFeatures.fVmx)
     1295    {
     1296        uint64_t const fVmcsRevisionId  = VMX_VMCS_REVISION_ID;
     1297        uint64_t const f32BitAddrLimit  = 0;
     1298        uint64_t const fDualMonSmiSmm   = 0;
     1299        uint64_t const fVmcsMemType     = VMX_VMCS_MEM_TYPE_WB;
     1300        uint64_t const fVmcsInsOutsInfo = pVCpu->CTX_SUFF(pVM)->cpum.s.GuestFeatures.fVmxInsOutInfo;
     1301        *puValue = fVmcsRevisionId
     1302                 | (f32BitAddrLimit  << MSR_IA32_VMX_BASIC_VMCS_PHYS_WIDTH_SHIFT)
     1303                 | (fDualMonSmiSmm   << MSR_IA32_VMX_BASIC_DUAL_MON_SHIFT)
     1304                 | (fVmcsMemType     << MSR_IA32_VMX_BASIC_VMCS_MEM_TYPE_SHIFT)
     1305                 | (fVmcsInsOutsInfo << MSR_IA32_VMX_BASIC_VMCS_INS_OUTS_SHIFT);
     1306    }
     1307    else
     1308        *puValue = 0;
    12941309    return VINF_SUCCESS;
    12951310}
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