diff options
Diffstat (limited to 'src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h')
-rw-r--r-- | src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h b/src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h index 6d100858492..5ba15efb042 100644 --- a/src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h +++ b/src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h @@ -4858,13 +4858,18 @@ static VBOXSTRICTRC vmxHCInjectEventVmcs(PVMCPUCC pVCpu, PVMXVMCSINFO pVmcsInfo, * NOT restore these force-flags. * * @returns Strict VBox status code (i.e. informational status codes too). - * @param pVCpu The cross context virtual CPU structure. - * @param pVmcsInfo The VMCS information structure. + * @param pVCpu The cross context virtual CPU structure. + * @param pVmcsInfo The VMCS information structure. + * @param pfIntrState Where to store the updated VMX guest-interruptibility + * state. */ -static VBOXSTRICTRC vmxHCEvaluatePendingEvent(PVMCPUCC pVCpu, PVMXVMCSINFO pVmcsInfo) +static VBOXSTRICTRC vmxHCEvaluatePendingEvent(PVMCPUCC pVCpu, PVMXVMCSINFO pVmcsInfo, uint32_t *pfIntrState) { + Assert(pfIntrState); Assert(!TRPMHasTrap(pVCpu)); + *pfIntrState = vmxHCGetGuestIntrStateWithUpdate(pVCpu); + /* * Evaluate if a new event needs to be injected. * An event that's already pending has already performed all necessary checks. @@ -4983,18 +4988,23 @@ static VBOXSTRICTRC vmxHCEvaluatePendingEvent(PVMCPUCC pVCpu, PVMXVMCSINFO pVmcs * NOT restore these force-flags. * * @returns Strict VBox status code (i.e. informational status codes too). - * @param pVCpu The cross context virtual CPU structure. - * @param pVmcsInfo The VMCS information structure. + * @param pVCpu The cross context virtual CPU structure. + * @param pVmcsInfo The VMCS information structure. + * @param pfIntrState Where to store the updated VMX guest-interruptibility + * state. * * @remarks The guest must be in VMX non-root mode. */ -static VBOXSTRICTRC vmxHCEvaluatePendingEventNested(PVMCPUCC pVCpu, PVMXVMCSINFO pVmcsInfo) +static VBOXSTRICTRC vmxHCEvaluatePendingEventNested(PVMCPUCC pVCpu, PVMXVMCSINFO pVmcsInfo, uint32_t *pfIntrState) { PCCPUMCTX pCtx = &pVCpu->cpum.GstCtx; + Assert(pfIntrState); Assert(CPUMIsGuestInVmxNonRootMode(pCtx)); Assert(!TRPMHasTrap(pVCpu)); + *pfIntrState = vmxHCGetGuestIntrStateWithUpdate(pVCpu); + /* * If we are injecting an event, all necessary checks have been performed. * Any interrupt-window or NMI-window exiting would have been setup by the |