Changeset 72643 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Jun 21, 2018 4:02:03 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 123151
- Location:
- trunk/src/VBox/VMM/VMMR3
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r72178 r72643 1433 1433 SSMR3PutU16(pSSM, pGstCtx->hwvirt.svm.cPauseFilterThreshold); 1434 1434 SSMR3PutBool(pSSM, pGstCtx->hwvirt.svm.fInterceptEvents); 1435 SSMR3PutBool(pSSM, pGstCtx->hwvirt.svm.fHMCachedVmcb);1436 1435 SSMR3PutStructEx(pSSM, &pGstCtx->hwvirt.svm.HostState, sizeof(pGstCtx->hwvirt.svm.HostState), 0 /* fFlags */, 1437 1436 g_aSvmHwvirtHostState, NULL /* pvUser */); … … 1674 1673 SSMR3GetU16(pSSM, &pGstCtx->hwvirt.svm.cPauseFilterThreshold); 1675 1674 SSMR3GetBool(pSSM, &pGstCtx->hwvirt.svm.fInterceptEvents); 1676 SSMR3GetBool(pSSM, &pGstCtx->hwvirt.svm.fHMCachedVmcb);1677 1675 SSMR3GetStructEx(pSSM, &pGstCtx->hwvirt.svm.HostState, sizeof(pGstCtx->hwvirt.svm.HostState), 1678 1676 0 /* fFlags */, g_aSvmHwvirtHostState, NULL /* pvUser */); -
trunk/src/VBox/VMM/VMMR3/EM.cpp
r72642 r72643 1886 1886 if (CPUMIsGuestSvmCtrlInterceptSet(pVCpu, &pVCpu->cpum.GstCtx, SVM_CTRL_INTERCEPT_INTR)) 1887 1887 { 1888 CPUM_IMPORT_EXTRN_RET(pVCpu, IEM_CPUMCTX_EXTRN_SVM_VMEXIT_MASK); 1888 1889 VBOXSTRICTRC rcStrict = IEMExecSvmVmexit(pVCpu, SVM_EXIT_INTR, 0, 0); 1889 1890 if (RT_SUCCESS(rcStrict)) … … 1904 1905 /* Note: it's important to make sure the return code from TRPMR3InjectEvent isn't ignored! */ 1905 1906 /** @todo this really isn't nice, should properly handle this */ 1907 CPUM_IMPORT_EXTRN_RET(pVCpu, IEM_CPUMCTX_EXTRN_XCPT_MASK); 1906 1908 int rc = TRPMR3InjectEvent(pVM, pVCpu, TRPM_HARDWARE_INT); 1907 1909 Assert(rc != VINF_PGM_CHANGE_MODE); … … 1926 1928 if (CPUMIsGuestSvmCtrlInterceptSet(pVCpu, &pVCpu->cpum.GstCtx, SVM_CTRL_INTERCEPT_VINTR)) 1927 1929 { 1930 CPUM_IMPORT_EXTRN_RET(pVCpu, IEM_CPUMCTX_EXTRN_SVM_VMEXIT_MASK); 1928 1931 VBOXSTRICTRC rcStrict = IEMExecSvmVmexit(pVCpu, SVM_EXIT_VINTR, 0, 0); 1929 1932 if (RT_SUCCESS(rcStrict)) -
trunk/src/VBox/VMM/VMMR3/HM.cpp
r72598 r72643 3491 3491 { 3492 3492 PCSVMNESTEDVMCBCACHE pVmcbNstGstCache = &pVM->aCpus[i].hm.s.svm.NstGstVmcbCache; 3493 rc = SSMR3PutU16(pSSM, pVmcbNstGstCache->u16InterceptRdCRx); 3493 rc = SSMR3PutBool(pSSM, pVmcbNstGstCache->fCacheValid); 3494 rc |= SSMR3PutU16(pSSM, pVmcbNstGstCache->u16InterceptRdCRx); 3494 3495 rc |= SSMR3PutU16(pSSM, pVmcbNstGstCache->u16InterceptWrCRx); 3495 3496 rc |= SSMR3PutU16(pSSM, pVmcbNstGstCache->u16InterceptRdDRx); … … 3576 3577 { 3577 3578 PSVMNESTEDVMCBCACHE pVmcbNstGstCache = &pVM->aCpus[i].hm.s.svm.NstGstVmcbCache; 3578 rc = SSMR3GetU16(pSSM, &pVmcbNstGstCache->u16InterceptRdCRx); 3579 rc = SSMR3GetBool(pSSM, &pVmcbNstGstCache->fCacheValid); 3580 rc |= SSMR3GetU16(pSSM, &pVmcbNstGstCache->u16InterceptRdCRx); 3579 3581 rc |= SSMR3GetU16(pSSM, &pVmcbNstGstCache->u16InterceptWrCRx); 3580 3582 rc |= SSMR3GetU16(pSSM, &pVmcbNstGstCache->u16InterceptRdDRx); … … 3687 3689 3688 3690 /** 3689 * Displays the guest VM-exit history.3691 * Displays HM info. 3690 3692 * 3691 3693 * @param pVM The cross context VM structure. … … 3761 3763 && pVM->cpum.ro.GuestFeatures.fSvm) 3762 3764 { 3763 PCCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVCpu);3764 3765 PCSVMNESTEDVMCBCACHE pVmcbNstGstCache = &pVCpu->hm.s.svm.NstGstVmcbCache; 3765 3766 pHlp->pfnPrintf(pHlp, "CPU[%u]: HM SVM nested-guest VMCB cache\n", pVCpu->idCpu); 3766 pHlp->pfnPrintf(pHlp, " f HMCachedVmcb = %#RTbool\n", pCtx->hwvirt.svm.fHMCachedVmcb);3767 pHlp->pfnPrintf(pHlp, " fCacheValid = %#RTbool\n", pVmcbNstGstCache->fCacheValid); 3767 3768 pHlp->pfnPrintf(pHlp, " u16InterceptRdCRx = %#RX16\n", pVmcbNstGstCache->u16InterceptRdCRx); 3768 3769 pHlp->pfnPrintf(pHlp, " u16InterceptWrCRx = %#RX16\n", pVmcbNstGstCache->u16InterceptWrCRx);
Note:
See TracChangeset
for help on using the changeset viewer.