- Timestamp:
- Sep 11, 2018 9:19:34 AM (6 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/HMVMXAll.cpp
r74187 r74189 31 31 *********************************************************************************************************************************/ 32 32 #define VMXV_DIAG_DESC(a_Def, a_Desc) #a_Def " - " #a_Desc 33 /** VMX virtual-instructions and VM-exit diagnostics. */ 33 34 static const char * const g_apszVmxVDiagDesc[] = 34 35 { … … 58 59 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_RealOrV86Mode , "RealOrV86Mode" ), 59 60 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_ShadowVmcs , "ShadowVmcs" ), 60 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_Success , "Success" ),61 61 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_VmxAlreadyRoot , "VmxAlreadyRoot" ), 62 62 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_Vmxe , "Vmxe" ), … … 68 68 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_LongModeCS , "LongModeCS" ), 69 69 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_RealOrV86Mode , "RealOrV86Mode" ), 70 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_Success , "Success" ),71 70 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_Vmxe , "Vmxe" ), 72 71 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_VmxRoot , "VmxRoot" ), … … 82 81 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_RealOrV86Mode , "RealOrV86Mode" ), 83 82 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_ShadowVmcs , "ShadowVmcs" ), 84 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_Success , "Success" ),85 83 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_VmcsRevId , "VmcsRevId" ), 86 84 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_VmxRoot , "VmxRoot" ), … … 90 88 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_PtrMap , "PtrMap" ), 91 89 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_RealOrV86Mode , "RealOrV86Mode" ), 92 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_Success , "Success" ),93 90 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_VmxRoot , "VmxRoot" ), 94 91 /* VMCLEAR. */ … … 102 99 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_PtrWidth , "PtrWidth" ), 103 100 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_RealOrV86Mode , "RealOrV86Mode" ), 104 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_Success , "Success" ),105 101 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_VmxRoot , "VmxRoot" ), 106 102 /* VMWRITE. */ … … 113 109 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_PtrMap , "PtrMap" ), 114 110 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_RealOrV86Mode , "RealOrV86Mode" ), 115 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_Success , "Success" ),116 111 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_VmxRoot , "VmxRoot" ), 117 112 /* VMREAD. */ … … 123 118 VMXV_DIAG_DESC(kVmxVDiag_Vmread_PtrMap , "PtrMap" ), 124 119 VMXV_DIAG_DESC(kVmxVDiag_Vmread_RealOrV86Mode , "RealOrV86Mode" ), 125 VMXV_DIAG_DESC(kVmxVDiag_Vmread_Success , "Success" ),126 120 VMXV_DIAG_DESC(kVmxVDiag_Vmread_VmxRoot , "VmxRoot" ), 127 121 /* VMLAUNCH/VMRESUME. */ … … 317 311 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_RealOrV86Mode , "RealOrV86Mode" ), 318 312 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_SavePreemptTimer , "SavePreemptTimer" ), 319 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_Success , "Success" ),320 313 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_TprThresholdRsvd , "TprThresholdRsvd" ), 321 314 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_TprThresholdVTpr , "TprThresholdVTpr" ), -
trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
r74187 r74189 1217 1217 DECL_FORCE_INLINE(void) iemVmxVmreadSuccess(PVMCPU pVCpu, uint8_t cbInstr) 1218 1218 { 1219 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmread_Success;1220 1219 iemVmxVmSucceed(pVCpu); 1221 1220 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1571 1570 } 1572 1571 1573 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmwrite_Success;1574 1572 iemVmxVmSucceed(pVCpu); 1575 1573 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1682 1680 } 1683 1681 1684 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmclear_Success;1685 1682 iemVmxVmSucceed(pVCpu); 1686 1683 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1726 1723 if (RT_LIKELY(rcStrict == VINF_SUCCESS)) 1727 1724 { 1728 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrst_Success;1729 1725 iemVmxVmSucceed(pVCpu); 1730 1726 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1862 1858 IEM_VMX_SET_CURRENT_VMCS(pVCpu, GCPhysVmcs); 1863 1859 } 1864 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_Success; 1860 1865 1861 iemVmxVmSucceed(pVCpu); 1866 1862 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 2014 2010 IEM_VMX_CLEAR_CURRENT_VMCS(pVCpu); 2015 2011 pVCpu->cpum.GstCtx.hwvirt.vmx.fInVmxRootMode = true; 2012 2016 2013 /** @todo NSTVMX: clear address-range monitoring. */ 2017 2014 /** @todo NSTVMX: Intel PT. */ 2018 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_Success; 2015 2019 2016 iemVmxVmSucceed(pVCpu); 2020 2017 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 3986 3983 } 3987 3984 3988 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmentry_Success;3989 3985 iemVmxVmSucceed(pVCpu); 3990 3986 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 4044 4040 if (fSmmMonitorCtl & MSR_IA32_SMM_MONITOR_VMXOFF_UNBLOCK_SMI) 4045 4041 { /** @todo NSTVMX: Unblock SMI. */ } 4042 4046 4043 /** @todo NSTVMX: Unblock and enable A20M. */ 4047 4044 /** @todo NSTVMX: Clear address-range monitoring. */ 4048 4045 4049 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxoff_Success;4050 4046 iemVmxVmSucceed(pVCpu); 4051 4047 iemRegAddToRipAndClearRF(pVCpu, cbInstr);
Note:
See TracChangeset
for help on using the changeset viewer.