Changeset 66276 in vbox for trunk/src/VBox/VMM/VMMAll/HMSVMAll.cpp
- Timestamp:
- Mar 28, 2017 7:14:16 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114200
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/HMSVMAll.cpp
r66254 r66276 484 484 } 485 485 486 /* 487 * Update the exit interruption info field so that if an exception occurs 488 * while delivering the event causing a #VMEXIT, we only need to update 489 * the valid bit while the rest is already in place. 490 */ 491 pVmcbCtrl->ExitIntInfo.u = pVmcbCtrl->EventInject.u; 492 pVmcbCtrl->ExitIntInfo.n.u1Valid = 0; 493 486 494 /** @todo NRIP: Software interrupts can only be pushed properly if we support 487 495 * NRIP for the nested-guest to calculate the instruction length 488 496 * below. */ 489 IEMInjectTrap(pVCpu, uVector, enmType, uErrorCode, pCtx->cr2, 0 /* cbInstr */); 497 VBOXSTRICTRC rcStrict = IEMInjectTrap(pVCpu, uVector, enmType, uErrorCode, pCtx->cr2, 0 /* cbInstr */); 498 if (rcStrict == VINF_SVM_VMEXIT) 499 return rcStrict; 490 500 } 491 501 … … 577 587 Assert(pCtx->hwvirt.svm.VmcbCtrl.IntCtrl.n.u8VIrqVector); 578 588 } 579 /* Save V_TPR. */ 580 589 /** @todo Save V_TPR, V_IRQ. */ 581 590 /** @todo NRIP. */ 582 591 … … 587 596 588 597 /* 589 * Clear event injection .598 * Clear event injection in the VMCB. 590 599 */ 591 600 pCtx->hwvirt.svm.VmcbCtrl.EventInject.n.u1Valid = 0; … … 688 697 } 689 698 699 700 #if 0 701 VMM_INT_DECL(int) HMSvmNstGstGetInterrupt(PVMCPU pVCpu) 702 { 703 PCPUMCTX pCtx = &pVCpu->cpum.GstCtx; 704 Assert(CPUMIsGuestInNestedHwVirtMode(pCtx)); 705 706 PCSVMVMCBCTRL pVmcbCtrl = &pCtx->hwvirt.svm.VmcbCtrl; 707 Assert(RT_BOOL(pVmcbCtrl->IntCtrl.n.u1VIrqValid)); 708 709 if (pVmcbCtrl->IntCtrl.n.u1VIntrMasking) 710 { 711 } 712 } 713 #endif
Note:
See TracChangeset
for help on using the changeset viewer.