Changeset 87542 in vbox for trunk/src/VBox/HostDrivers/Support
- Timestamp:
- Feb 2, 2021 4:51:25 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142568
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/SUPDrv.cpp
r87534 r87542 4641 4641 Msrs.u.vmx.u64FeatCtrl = ASMRdMsr(MSR_IA32_FEATURE_CONTROL); 4642 4642 Msrs.u.vmx.u64Basic = ASMRdMsr(MSR_IA32_VMX_BASIC); 4643 Msrs.u.vmx. u64PinCtls= ASMRdMsr(MSR_IA32_VMX_PINBASED_CTLS);4644 Msrs.u.vmx. u64ProcCtls= ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS);4645 Msrs.u.vmx. u64ExitCtls= ASMRdMsr(MSR_IA32_VMX_EXIT_CTLS);4646 Msrs.u.vmx. u64EntryCtls= ASMRdMsr(MSR_IA32_VMX_ENTRY_CTLS);4643 Msrs.u.vmx.PinCtls.u = ASMRdMsr(MSR_IA32_VMX_PINBASED_CTLS); 4644 Msrs.u.vmx.ProcCtls.u = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS); 4645 Msrs.u.vmx.ExitCtls.u = ASMRdMsr(MSR_IA32_VMX_EXIT_CTLS); 4646 Msrs.u.vmx.EntryCtls.u = ASMRdMsr(MSR_IA32_VMX_ENTRY_CTLS); 4647 4647 Msrs.u.vmx.u64Misc = ASMRdMsr(MSR_IA32_VMX_MISC); 4648 4648 Msrs.u.vmx.u64Cr0Fixed0 = ASMRdMsr(MSR_IA32_VMX_CR0_FIXED0); … … 4654 4654 if (RT_BF_GET(Msrs.u.vmx.u64Basic, VMX_BF_BASIC_TRUE_CTLS)) 4655 4655 { 4656 Msrs.u.vmx.u64TruePinCtls = ASMRdMsr(MSR_IA32_VMX_TRUE_PINBASED_CTLS); 4657 Msrs.u.vmx.u64TrueProcCtls = ASMRdMsr(MSR_IA32_VMX_TRUE_PROCBASED_CTLS); 4658 Msrs.u.vmx.u64TrueEntryCtls = ASMRdMsr(MSR_IA32_VMX_TRUE_ENTRY_CTLS); 4659 Msrs.u.vmx.u64TrueExitCtls = ASMRdMsr(MSR_IA32_VMX_TRUE_EXIT_CTLS); 4660 } 4661 4662 uint32_t const fProcCtlsAllowed1 = RT_HI_U32(Msrs.u.vmx.u64ProcCtls); 4663 if (fProcCtlsAllowed1 & VMX_PROC_CTLS_USE_SECONDARY_CTLS) 4664 { 4665 Msrs.u.vmx.u64ProcCtls2 = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS2); 4666 4667 uint32_t const fProcCtls2Allowed1 = RT_HI_U32(Msrs.u.vmx.u64ProcCtls2); 4668 if (fProcCtls2Allowed1 & (VMX_PROC_CTLS2_EPT | VMX_PROC_CTLS2_VPID)) 4656 Msrs.u.vmx.TruePinCtls.u = ASMRdMsr(MSR_IA32_VMX_TRUE_PINBASED_CTLS); 4657 Msrs.u.vmx.TrueProcCtls.u = ASMRdMsr(MSR_IA32_VMX_TRUE_PROCBASED_CTLS); 4658 Msrs.u.vmx.TrueEntryCtls.u = ASMRdMsr(MSR_IA32_VMX_TRUE_ENTRY_CTLS); 4659 Msrs.u.vmx.TrueExitCtls.u = ASMRdMsr(MSR_IA32_VMX_TRUE_EXIT_CTLS); 4660 } 4661 4662 if (Msrs.u.vmx.ProcCtls.n.allowed1 & VMX_PROC_CTLS_USE_SECONDARY_CTLS) 4663 { 4664 Msrs.u.vmx.ProcCtls2.u = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS2); 4665 4666 if (Msrs.u.vmx.ProcCtls2.n.allowed1 & (VMX_PROC_CTLS2_EPT | VMX_PROC_CTLS2_VPID)) 4669 4667 Msrs.u.vmx.u64EptVpidCaps = ASMRdMsr(MSR_IA32_VMX_EPT_VPID_CAP); 4670 4668 4671 if ( fProcCtls2Allowed1 & VMX_PROC_CTLS2_VMFUNC)4669 if (Msrs.u.vmx.ProcCtls2.n.allowed1 & VMX_PROC_CTLS2_VMFUNC) 4672 4670 Msrs.u.vmx.u64VmFunc = ASMRdMsr(MSR_IA32_VMX_VMFUNC); 4673 4671 }
Note:
See TracChangeset
for help on using the changeset viewer.