Changeset 45865 in vbox for trunk/src/VBox/VMM
- Timestamp:
- May 1, 2013 12:05:16 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45861 r45865 5773 5773 && !(uIntrState & VMX_VMCS_GUEST_INTERRUPTIBILITY_STATE_BLOCK_SMI)); 5774 5774 Assert(!fBlockSti || pMixedCtx->eflags.Bits.u1IF); /* Cannot set block-by-STI when interrupts are disabled. */ 5775 Assert(!TRPMHasTrap(pVCpu)); 5775 5776 5776 5777 int rc = VINF_SUCCESS; … … 6472 6473 6473 6474 /* 6474 * This clears force-flags, TRPM traps & pending HM events. We cannot safely restore the state if we exit to ring-36475 * (before running guest code) after calling this function (e.g. how do we reverse the effects of calling PDMGetInterrupt()?)6476 * This is why this is done after all possible exits-to-ring-3 paths in this code.6475 * Evaluates and injects any pending events, toggling force-flags and updating the guest-interruptibility 6476 * state (interrupt shadow) in the VMCS. This -can- potentially be reworked to be done before disabling 6477 * interrupts and handle returning to ring-3 afterwards, but requires very careful state restoration. 6477 6478 */ 6478 /** @todo r=bird: You reverse the effect of calling PDMGetInterrupt by 6479 * handing it over to TPRM like we do in REMR3StateBack using 6480 * TRPMAssertTrap and the other setters. */ 6479 /** @todo Rework event evaluation and injection to be complete separate. */ 6481 6480 rc = hmR0VmxInjectPendingEvent(pVCpu, pMixedCtx); 6482 6481 AssertRCReturn(rc, rc);
Note:
See TracChangeset
for help on using the changeset viewer.