summaryrefslogtreecommitdiff
path: root/src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h')
-rw-r--r--src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h22
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