VirtualBox

Ignore:
Timestamp:
Mar 28, 2017 7:14:16 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
114200
Message:

VMM: Nested Hw.virt: SVM MSRPM and IOPM allocations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/HMSVMAll.cpp

    r66254 r66276  
    484484                }
    485485
     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
    486494                /** @todo NRIP: Software interrupts can only be pushed properly if we support
    487495                 *        NRIP for the nested-guest to calculate the instruction length
    488496                 *        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;
    490500            }
    491501
     
    577587            Assert(pCtx->hwvirt.svm.VmcbCtrl.IntCtrl.n.u8VIrqVector);
    578588        }
    579         /* Save V_TPR. */
    580 
     589        /** @todo Save V_TPR, V_IRQ. */
    581590        /** @todo NRIP. */
    582591
     
    587596
    588597        /*
    589          * Clear event injection.
     598         * Clear event injection in the VMCB.
    590599         */
    591600        pCtx->hwvirt.svm.VmcbCtrl.EventInject.n.u1Valid = 0;
     
    688697}
    689698
     699
     700#if 0
     701VMM_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.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette