VirtualBox

Changeset 70001 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Dec 8, 2017 5:58:00 AM (7 years ago)
Author:
vboxsync
Message:

VMM/IEM: Nested hw.virt: Fixed SVM intercept function calls to accomodate the extra parameter.

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

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

    r69221 r70001  
    419419 * Check if an SVM control/instruction intercept is set.
    420420 */
    421 # define IEM_IS_SVM_CTRL_INTERCEPT_SET(a_pVCpu, a_Intercept) (CPUMIsGuestSvmCtrlInterceptSet(IEM_GET_CTX(a_pVCpu), (a_Intercept)))
     421# define IEM_IS_SVM_CTRL_INTERCEPT_SET(a_pVCpu, a_Intercept) (CPUMIsGuestSvmCtrlInterceptSet(a_pVCpu, IEM_GET_CTX(a_pVCpu), (a_Intercept)))
    422422
    423423/**
    424424 * Check if an SVM read CRx intercept is set.
    425425 */
    426 # define IEM_IS_SVM_READ_CR_INTERCEPT_SET(a_pVCpu, a_uCr)    (CPUMIsGuestSvmReadCRxInterceptSet(IEM_GET_CTX(a_pVCpu), (a_uCr)))
     426# define IEM_IS_SVM_READ_CR_INTERCEPT_SET(a_pVCpu, a_uCr)    (CPUMIsGuestSvmReadCRxInterceptSet(a_pVCpu, IEM_GET_CTX(a_pVCpu), (a_uCr)))
    427427
    428428/**
    429429 * Check if an SVM write CRx intercept is set.
    430430 */
    431 # define IEM_IS_SVM_WRITE_CR_INTERCEPT_SET(a_pVCpu, a_uCr)   (CPUMIsGuestSvmWriteCRxInterceptSet(IEM_GET_CTX(a_pVCpu), (a_uCr)))
     431# define IEM_IS_SVM_WRITE_CR_INTERCEPT_SET(a_pVCpu, a_uCr)   (CPUMIsGuestSvmWriteCRxInterceptSet(a_pVCpu, IEM_GET_CTX(a_pVCpu), (a_uCr)))
    432432
    433433/**
    434434 * Check if an SVM read DRx intercept is set.
    435435 */
    436 # define IEM_IS_SVM_READ_DR_INTERCEPT_SET(a_pVCpu, a_uDr)    (CPUMIsGuestSvmReadDRxInterceptSet(IEM_GET_CTX(a_pVCpu), (a_uDr)))
     436# define IEM_IS_SVM_READ_DR_INTERCEPT_SET(a_pVCpu, a_uDr)    (CPUMIsGuestSvmReadDRxInterceptSet(a_pVCpu, IEM_GET_CTX(a_pVCpu), (a_uDr)))
    437437
    438438/**
    439439 * Check if an SVM write DRx intercept is set.
    440440 */
    441 # define IEM_IS_SVM_WRITE_DR_INTERCEPT_SET(a_pVCpu, a_uDr)   (CPUMIsGuestSvmWriteDRxInterceptSet(IEM_GET_CTX(a_pVCpu), (a_uDr)))
     441# define IEM_IS_SVM_WRITE_DR_INTERCEPT_SET(a_pVCpu, a_uDr)   (CPUMIsGuestSvmWriteDRxInterceptSet(a_pVCpu, IEM_GET_CTX(a_pVCpu), (a_uDr)))
    442442
    443443/**
    444444 * Check if an SVM exception intercept is set.
    445445 */
    446 # define IEM_IS_SVM_XCPT_INTERCEPT_SET(a_pVCpu, a_uVector)   (CPUMIsGuestSvmXcptInterceptSet(IEM_GET_CTX(a_pVCpu), (a_uVector)))
     446# define IEM_IS_SVM_XCPT_INTERCEPT_SET(a_pVCpu, a_uVector)   (CPUMIsGuestSvmXcptInterceptSet(a_pVCpu, IEM_GET_CTX(a_pVCpu), (a_uVector)))
    447447
    448448/**
     
    1384813848    {
    1384913849        if (CPUMIsGuestInSvmNestedHwVirtMode(pCtx))
    13850             fIntrEnabled = CPUMCanSvmNstGstTakePhysIntr(pCtx);
     13850            fIntrEnabled = CPUMCanSvmNstGstTakePhysIntr(pVCpu, pCtx);
    1385113851        else
    1385213852            fIntrEnabled = pOrgCtx->eflags.Bits.u1IF;
     
    1520915209    {
    1521015210        if (CPUMIsGuestInSvmNestedHwVirtMode(pCtx))
    15211             fIntrEnabled = CPUMCanSvmNstGstTakePhysIntr(pCtx);
     15211            fIntrEnabled = CPUMCanSvmNstGstTakePhysIntr(pVCpu, pCtx);
    1521215212        else
    1521315213            fIntrEnabled = pCtx->eflags.Bits.u1IF;
     
    1527515275    {
    1527615276        if (CPUMIsGuestInSvmNestedHwVirtMode(pCtx))
    15277             fIntrEnabled = CPUMCanSvmNstGstTakePhysIntr(pCtx);
     15277            fIntrEnabled = CPUMCanSvmNstGstTakePhysIntr(pVCpu, pCtx);
    1527815278        else
    1527915279            fIntrEnabled = pCtx->eflags.Bits.u1IF;
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImplSvmInstr.cpp.h

    r69765 r70001  
    328328         */
    329329        /* VMRUN must always be intercepted. */
    330         if (!CPUMIsGuestSvmCtrlInterceptSet(pCtx, SVM_CTRL_INTERCEPT_VMRUN))
     330        if (!CPUMIsGuestSvmCtrlInterceptSet(pVCpu, pCtx, SVM_CTRL_INTERCEPT_VMRUN))
    331331        {
    332332            Log(("iemSvmVmrun: VMRUN instruction not intercepted -> #VMEXIT\n"));
     
    10021002     * Check if any MSRs are being intercepted.
    10031003     */
    1004     Assert(CPUMIsGuestSvmCtrlInterceptSet(pCtx, SVM_CTRL_INTERCEPT_MSR_PROT));
     1004    Assert(CPUMIsGuestSvmCtrlInterceptSet(pVCpu, pCtx, SVM_CTRL_INTERCEPT_MSR_PROT));
    10051005    Assert(CPUMIsGuestInSvmNestedHwVirtMode(pCtx));
    10061006
Note: See TracChangeset for help on using the changeset viewer.

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