Changeset 85806 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Aug 18, 2020 7:24:05 AM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 139963
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r83485 r85806 999 999 /* Set up unconditional intercepts and conditions. */ 1000 1000 pVmcbCtrl0->u64InterceptCtrl = HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS 1001 | SVM_CTRL_INTERCEPT_VMMCALL; 1001 | SVM_CTRL_INTERCEPT_VMMCALL 1002 | SVM_CTRL_INTERCEPT_VMSAVE 1003 | SVM_CTRL_INTERCEPT_VMLOAD 1004 | SVM_CTRL_INTERCEPT_CLGI 1005 | SVM_CTRL_INTERCEPT_STGI; 1002 1006 1003 1007 #ifdef HMSVM_ALWAYS_TRAP_TASK_SWITCH … … 1006 1010 1007 1011 #ifdef VBOX_WITH_NESTED_HWVIRT_SVM 1008 /* Virtualized VMSAVE/VMLOAD. */ 1009 pVmcbCtrl0->LbrVirt.n.u1VirtVmsaveVmload = fUseVirtVmsaveVmload; 1010 if (!fUseVirtVmsaveVmload) 1011 pVmcbCtrl0->u64InterceptCtrl |= SVM_CTRL_INTERCEPT_VMSAVE 1012 | SVM_CTRL_INTERCEPT_VMLOAD; 1013 1014 /* Virtual GIF. */ 1015 pVmcbCtrl0->IntCtrl.n.u1VGifEnable = fUseVGif; 1016 if (!fUseVGif) 1017 pVmcbCtrl0->u64InterceptCtrl |= SVM_CTRL_INTERCEPT_CLGI 1018 | SVM_CTRL_INTERCEPT_STGI; 1012 if (pVCpu0->CTX_SUFF(pVM)->cpum.ro.GuestFeatures.fSvm) 1013 { 1014 /* Virtualized VMSAVE/VMLOAD. */ 1015 if (fUseVirtVmsaveVmload) 1016 { 1017 pVmcbCtrl0->LbrVirt.n.u1VirtVmsaveVmload = 1; 1018 pVmcbCtrl0->u64InterceptCtrl &= ~( SVM_CTRL_INTERCEPT_VMSAVE 1019 | SVM_CTRL_INTERCEPT_VMLOAD); 1020 } 1021 else 1022 Assert(!pVmcbCtrl0->LbrVirt.n.u1VirtVmsaveVmload); 1023 1024 /* Virtual GIF. */ 1025 if (fUseVGif) 1026 { 1027 pVmcbCtrl0->IntCtrl.n.u1VGifEnable = 1; 1028 pVmcbCtrl0->u64InterceptCtrl &= ~( SVM_CTRL_INTERCEPT_CLGI 1029 | SVM_CTRL_INTERCEPT_STGI); 1030 } 1031 else 1032 Assert(!pVmcbCtrl0->IntCtrl.n.u1VGifEnable); 1033 } 1034 else 1019 1035 #endif 1036 { 1037 Assert(!pVCpu0->CTX_SUFF(pVM)->cpum.ro.GuestFeatures.fSvm); 1038 Assert(!pVmcbCtrl0->LbrVirt.n.u1VirtVmsaveVmload); 1039 Assert(!pVmcbCtrl0->IntCtrl.n.u1VGifEnable); 1040 } 1020 1041 1021 1042 /* CR4 writes must always be intercepted for tracking PGM mode changes. */
Note:
See TracChangeset
for help on using the changeset viewer.