Changeset 97004 in vbox
- Timestamp:
- Oct 5, 2022 1:17:28 PM (2 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h
r96999 r97004 952 952 } 953 953 954 955 954 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX 955 956 956 /** 957 957 * Loads the shadow VMCS specified by the VMCS info. object. … … 1117 1117 return rc; 1118 1118 } 1119 1119 1120 #endif /* VBOX_WITH_NESTED_HWVIRT_VMX */ 1120 1121 1122 1121 #ifdef VBOX_STRICT 1122 1123 1123 /** 1124 1124 * Reads the VM-entry interruption-information field from the VMCS into the VMX … … 1161 1161 AssertRC(rc); 1162 1162 } 1163 1163 1164 #endif /* VBOX_STRICT */ 1164 1165 1165 1166 1166 /** … … 4276 4276 if (uVector == X86_XCPT_GP) 4277 4277 { 4278 uint32_t const uXcptDfInfo = RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_VECTOR, X86_XCPT_DF) 4279 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_TYPE, VMX_ENTRY_INT_INFO_TYPE_HW_XCPT) 4280 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_ERR_CODE_VALID, 0) 4281 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_VALID, 1); 4282 HMEVENT EventXcptDf; 4283 RT_ZERO(EventXcptDf); 4284 EventXcptDf.u64IntInfo = uXcptDfInfo; 4285 return vmxHCInjectEventVmcs(pVCpu, pVmcsInfo, fIsNestedGuest, &EventXcptDf, fStepping, pfIntrState); 4278 static HMEVENT const s_EventXcptDf 4279 = HMEVENT_INIT_ONLY_INT_INFO( RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_VECTOR, X86_XCPT_DF) 4280 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_TYPE, VMX_ENTRY_INT_INFO_TYPE_HW_XCPT) 4281 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_ERR_CODE_VALID, 0) 4282 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_VALID, 1)); 4283 return vmxHCInjectEventVmcs(pVCpu, pVmcsInfo, fIsNestedGuest, &s_EventXcptDf, fStepping, pfIntrState); 4286 4284 } 4287 4285 … … 4292 4290 * See Intel spec. 20.1.4 "Interrupt and Exception Handling" 4293 4291 */ 4294 uint32_t const uXcptGpInfo = RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_VECTOR, X86_XCPT_GP) 4295 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_TYPE, VMX_ENTRY_INT_INFO_TYPE_HW_XCPT) 4296 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_ERR_CODE_VALID, 0) 4297 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_VALID, 1); 4298 HMEVENT EventXcptGp; 4299 RT_ZERO(EventXcptGp); 4300 EventXcptGp.u64IntInfo = uXcptGpInfo; 4301 return vmxHCInjectEventVmcs(pVCpu, pVmcsInfo, fIsNestedGuest, &EventXcptGp, fStepping, pfIntrState); 4292 static HMEVENT const s_EventXcptGp 4293 = HMEVENT_INIT_ONLY_INT_INFO( RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_VECTOR, X86_XCPT_GP) 4294 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_TYPE, VMX_ENTRY_INT_INFO_TYPE_HW_XCPT) 4295 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_ERR_CODE_VALID, 0) 4296 | RT_BF_MAKE(VMX_BF_ENTRY_INT_INFO_VALID, 1)); 4297 return vmxHCInjectEventVmcs(pVCpu, pVmcsInfo, fIsNestedGuest, &s_EventXcptGp, fStepping, pfIntrState); 4302 4298 } 4303 4299 -
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r96993 r97004 2244 2244 } 2245 2245 2246 2247 2246 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX 2247 2248 2248 /** 2249 2249 * Sets up the shadow VMCS fields arrays. … … 2366 2366 } 2367 2367 } 2368 2368 2369 #endif /* VBOX_WITH_NESTED_HWVIRT_VMX */ 2369 2370 2370 2371 2371 /** -
trunk/src/VBox/VMM/include/HMVMXCommon.h
r96407 r97004 232 232 AssertCompileSizeAlignment(HMEVENT, 8); 233 233 234 /** Initializer for a HMEVENT structure with */ 235 #define HMEVENT_INIT_ONLY_INT_INFO(a_uIntInfo) { 0, 0, 0, 0, (a_uIntInfo), 0 } 234 236 235 237 /**
Note:
See TracChangeset
for help on using the changeset viewer.