Changeset 76469 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Dec 25, 2018 5:23:49 AM (6 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/HMAll.cpp
r76454 r76469 577 577 #endif /* !IN_RC */ 578 578 579 580 /** 581 * Gets VMX MSRs from the provided hardware-virtualization MSRs struct. 582 * 583 * This abstraction exists to allow insultation of the support driver from including 584 * VMX structures from HM headers. 585 * 586 * @param pHwvirtMsrs The hardware-virtualization MSRs. 587 * @param pVmxMsrs Where to store the VMX MSRs. 588 */ 589 VMM_INT_DECL(void) HMVmxGetVmxMsrsFromHwvirtMsrs(PCSUPHWVIRTMSRS pHwvirtMsrs, PVMXMSRS pVmxMsrs) 590 { 591 AssertReturnVoid(pHwvirtMsrs); 592 AssertReturnVoid(pVmxMsrs); 593 pVmxMsrs->u64FeatCtrl = pHwvirtMsrs->u.vmx.u64FeatCtrl; 594 pVmxMsrs->u64Basic = pHwvirtMsrs->u.vmx.u64Basic; 595 pVmxMsrs->PinCtls.u = pHwvirtMsrs->u.vmx.u64PinCtls; 596 pVmxMsrs->ProcCtls.u = pHwvirtMsrs->u.vmx.u64ProcCtls; 597 pVmxMsrs->ProcCtls2.u = pHwvirtMsrs->u.vmx.u64ProcCtls2; 598 pVmxMsrs->ExitCtls.u = pHwvirtMsrs->u.vmx.u64ExitCtls; 599 pVmxMsrs->EntryCtls.u = pHwvirtMsrs->u.vmx.u64EntryCtls; 600 pVmxMsrs->TruePinCtls.u = pHwvirtMsrs->u.vmx.u64TruePinCtls; 601 pVmxMsrs->TrueProcCtls.u = pHwvirtMsrs->u.vmx.u64TrueProcCtls; 602 pVmxMsrs->TrueEntryCtls.u = pHwvirtMsrs->u.vmx.u64TrueEntryCtls; 603 pVmxMsrs->TrueExitCtls.u = pHwvirtMsrs->u.vmx.u64TrueExitCtls; 604 pVmxMsrs->u64Misc = pHwvirtMsrs->u.vmx.u64Misc; 605 pVmxMsrs->u64Cr0Fixed0 = pHwvirtMsrs->u.vmx.u64Cr0Fixed0; 606 pVmxMsrs->u64Cr0Fixed1 = pHwvirtMsrs->u.vmx.u64Cr0Fixed1; 607 pVmxMsrs->u64Cr4Fixed0 = pHwvirtMsrs->u.vmx.u64Cr4Fixed0; 608 pVmxMsrs->u64Cr4Fixed1 = pHwvirtMsrs->u.vmx.u64Cr4Fixed1; 609 pVmxMsrs->u64VmcsEnum = pHwvirtMsrs->u.vmx.u64VmcsEnum; 610 pVmxMsrs->u64VmFunc = pHwvirtMsrs->u.vmx.u64VmFunc; 611 pVmxMsrs->u64EptVpidCaps = pHwvirtMsrs->u.vmx.u64EptVpidCaps; 612 } 613 614 615 /** 616 * Gets SVM MSRs from the provided hardware-virtualization MSRs struct. 617 * 618 * This abstraction exists to allow insultation of the support driver from including 619 * SVM structures from HM headers. 620 * 621 * @param pHwvirtMsrs The hardware-virtualization MSRs. 622 * @param pSvmMsrs Where to store the SVM MSRs. 623 */ 624 VMM_INT_DECL(void) HMVmxGetSvmMsrsFromHwvirtMsrs(PCSUPHWVIRTMSRS pHwvirtMsrs, PSVMMSRS pSvmMsrs) 625 { 626 AssertReturnVoid(pHwvirtMsrs); 627 AssertReturnVoid(pSvmMsrs); 628 pSvmMsrs->u64MsrHwcr = pHwvirtMsrs->u.svm.u64MsrHwcr; 629 } 630 -
trunk/src/VBox/VMM/VMMR0/HMR0.cpp
r76468 r76469 1176 1176 pVM->hm.s.vmx.u64HostEfer = g_HmR0.hwvirt.u.vmx.u64HostEfer; 1177 1177 pVM->hm.s.vmx.u64HostSmmMonitorCtl = g_HmR0.hwvirt.u.vmx.u64HostSmmMonitorCtl; 1178 1179 pVM->hm.s.vmx.Msrs.u64FeatCtrl = g_HmR0.hwvirt.Msrs.u.vmx.u64FeatCtrl; 1180 pVM->hm.s.vmx.Msrs.u64Basic = g_HmR0.hwvirt.Msrs.u.vmx.u64Basic; 1181 pVM->hm.s.vmx.Msrs.PinCtls.u = g_HmR0.hwvirt.Msrs.u.vmx.u64PinCtls; 1182 pVM->hm.s.vmx.Msrs.ProcCtls.u = g_HmR0.hwvirt.Msrs.u.vmx.u64ProcCtls; 1183 pVM->hm.s.vmx.Msrs.ProcCtls2.u = g_HmR0.hwvirt.Msrs.u.vmx.u64ProcCtls2; 1184 pVM->hm.s.vmx.Msrs.ExitCtls.u = g_HmR0.hwvirt.Msrs.u.vmx.u64ExitCtls; 1185 pVM->hm.s.vmx.Msrs.EntryCtls.u = g_HmR0.hwvirt.Msrs.u.vmx.u64EntryCtls; 1186 pVM->hm.s.vmx.Msrs.TruePinCtls.u = g_HmR0.hwvirt.Msrs.u.vmx.u64TruePinCtls; 1187 pVM->hm.s.vmx.Msrs.TrueProcCtls.u = g_HmR0.hwvirt.Msrs.u.vmx.u64TrueProcCtls; 1188 pVM->hm.s.vmx.Msrs.TrueEntryCtls.u = g_HmR0.hwvirt.Msrs.u.vmx.u64TrueEntryCtls; 1189 pVM->hm.s.vmx.Msrs.TrueExitCtls.u = g_HmR0.hwvirt.Msrs.u.vmx.u64TrueExitCtls; 1190 pVM->hm.s.vmx.Msrs.u64Misc = g_HmR0.hwvirt.Msrs.u.vmx.u64Misc; 1191 pVM->hm.s.vmx.Msrs.u64Cr0Fixed0 = g_HmR0.hwvirt.Msrs.u.vmx.u64Cr0Fixed0; 1192 pVM->hm.s.vmx.Msrs.u64Cr0Fixed1 = g_HmR0.hwvirt.Msrs.u.vmx.u64Cr0Fixed1; 1193 pVM->hm.s.vmx.Msrs.u64Cr4Fixed0 = g_HmR0.hwvirt.Msrs.u.vmx.u64Cr4Fixed0; 1194 pVM->hm.s.vmx.Msrs.u64Cr4Fixed1 = g_HmR0.hwvirt.Msrs.u.vmx.u64Cr4Fixed1; 1195 pVM->hm.s.vmx.Msrs.u64VmcsEnum = g_HmR0.hwvirt.Msrs.u.vmx.u64VmcsEnum; 1196 pVM->hm.s.vmx.Msrs.u64VmFunc = g_HmR0.hwvirt.Msrs.u.vmx.u64VmFunc; 1197 pVM->hm.s.vmx.Msrs.u64EptVpidCaps = g_HmR0.hwvirt.Msrs.u.vmx.u64EptVpidCaps; 1178 HMVmxGetVmxMsrsFromHwvirtMsrs(&g_HmR0.hwvirt.Msrs, &pVM->hm.s.vmx.Msrs); 1198 1179 } 1199 1180 else if (pVM->hm.s.svm.fSupported) -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r76468 r76469 1750 1750 { 1751 1751 if (fCaps & SUPVTCAPS_VT_X) 1752 { 1753 pMsrs->hwvirt.vmx.u64FeatCtrl = HwvirtMsrs.u.vmx.u64FeatCtrl; 1754 pMsrs->hwvirt.vmx.u64Basic = HwvirtMsrs.u.vmx.u64Basic; 1755 pMsrs->hwvirt.vmx.PinCtls.u = HwvirtMsrs.u.vmx.u64PinCtls; 1756 pMsrs->hwvirt.vmx.ProcCtls.u = HwvirtMsrs.u.vmx.u64ProcCtls; 1757 pMsrs->hwvirt.vmx.ProcCtls2.u = HwvirtMsrs.u.vmx.u64ProcCtls2; 1758 pMsrs->hwvirt.vmx.ExitCtls.u = HwvirtMsrs.u.vmx.u64ExitCtls; 1759 pMsrs->hwvirt.vmx.EntryCtls.u = HwvirtMsrs.u.vmx.u64EntryCtls; 1760 pMsrs->hwvirt.vmx.TruePinCtls.u = HwvirtMsrs.u.vmx.u64TruePinCtls; 1761 pMsrs->hwvirt.vmx.TrueProcCtls.u = HwvirtMsrs.u.vmx.u64TrueProcCtls; 1762 pMsrs->hwvirt.vmx.TrueEntryCtls.u = HwvirtMsrs.u.vmx.u64TrueEntryCtls; 1763 pMsrs->hwvirt.vmx.TrueExitCtls.u = HwvirtMsrs.u.vmx.u64TrueExitCtls; 1764 pMsrs->hwvirt.vmx.u64Misc = HwvirtMsrs.u.vmx.u64Misc; 1765 pMsrs->hwvirt.vmx.u64Cr0Fixed0 = HwvirtMsrs.u.vmx.u64Cr0Fixed0; 1766 pMsrs->hwvirt.vmx.u64Cr0Fixed1 = HwvirtMsrs.u.vmx.u64Cr0Fixed1; 1767 pMsrs->hwvirt.vmx.u64Cr4Fixed0 = HwvirtMsrs.u.vmx.u64Cr4Fixed0; 1768 pMsrs->hwvirt.vmx.u64Cr4Fixed1 = HwvirtMsrs.u.vmx.u64Cr4Fixed1; 1769 pMsrs->hwvirt.vmx.u64VmcsEnum = HwvirtMsrs.u.vmx.u64VmcsEnum; 1770 pMsrs->hwvirt.vmx.u64VmFunc = HwvirtMsrs.u.vmx.u64VmFunc; 1771 pMsrs->hwvirt.vmx.u64EptVpidCaps = HwvirtMsrs.u.vmx.u64EptVpidCaps; 1772 } 1752 HMVmxGetVmxMsrsFromHwvirtMsrs(&HwvirtMsrs, &pMsrs->hwvirt.vmx); 1773 1753 else 1774 pMsrs->hwvirt.svm.u64MsrHwcr = HwvirtMsrs.u.svm.u64MsrHwcr;1754 HMVmxGetSvmMsrsFromHwvirtMsrs(&HwvirtMsrs, &pMsrs->hwvirt.svm); 1775 1755 return VINF_SUCCESS; 1776 1756 }
Note:
See TracChangeset
for help on using the changeset viewer.