- Timestamp:
- Jun 4, 2019 7:43:08 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r78948 r78952 12626 12626 case VMX_EXIT_EPT_MISCONFIG: return hmR0VmxExitEptMisconfig(pVCpu, pVmxTransient); 12627 12627 case VMX_EXIT_EPT_VIOLATION: return hmR0VmxExitEptViolation(pVCpu, pVmxTransient); 12628 case VMX_EXIT_XCPT_OR_NMI: return hmR0VmxExitXcptOrNmiNested(pVCpu, pVmxTransient); 12628 12629 case VMX_EXIT_IO_INSTR: return hmR0VmxExitIoInstrNested(pVCpu, pVmxTransient); 12629 12630 case VMX_EXIT_HLT: return hmR0VmxExitHltNested(pVCpu, pVmxTransient); 12630 case VMX_EXIT_XCPT_OR_NMI: return hmR0VmxExitXcptOrNmiNested(pVCpu, pVmxTransient);12631 12631 12632 12632 /* … … 16393 16393 Assert(CPUMIsGuestVmxProcCtls2Set(pVCpu, &pVCpu->cpum.GstCtx, VMX_PROC_CTLS2_VIRT_APIC_ACCESS)); 16394 16394 int rc = hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient); 16395 rc |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient); 16396 rc |= hmR0VmxReadIdtVectoringInfoVmcs(pVmxTransient); 16397 rc |= hmR0VmxReadIdtVectoringErrorCodeVmcs(pVmxTransient); 16395 16398 AssertRCReturn(rc, rc); 16396 16399 16397 return IEMExecVmxVmexit(pVCpu, pVmxTransient->uExitReason, pVmxTransient->uExitQual); 16400 VMXVEXITINFO ExitInfo; 16401 RT_ZERO(ExitInfo); 16402 ExitInfo.cbInstr = pVmxTransient->cbInstr; 16403 ExitInfo.u64Qual = pVmxTransient->uExitQual; 16404 16405 VMXVEXITEVENTINFO ExitEventInfo; 16406 RT_ZERO(ExitInfo); 16407 ExitEventInfo.uIdtVectoringInfo = pVmxTransient->uIdtVectoringInfo; 16408 ExitEventInfo.uIdtVectoringErrCode = pVmxTransient->uIdtVectoringErrorCode; 16409 return IEMExecVmxVmexitApicAccess(pVCpu, &ExitInfo, &ExitEventInfo); 16398 16410 } 16399 16411
Note:
See TracChangeset
for help on using the changeset viewer.