VirtualBox

Changeset 19462 in vbox


Ignore:
Timestamp:
May 6, 2009 8:20:47 PM (16 years ago)
Author:
vboxsync
Message:

VMM: iLastGZRc from VMM to VMMCPU.

Location:
trunk/src/VBox/VMM
Files:
5 edited

Legend:

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

    r19436 r19462  
    10711071            rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0);
    10721072            if (RT_LIKELY(rc == VINF_SUCCESS))
    1073                 rc = pVM->vmm.s.iLastGZRc;
     1073                rc = pVCpu->vmm.s.iLastGZRc;
    10741074#endif
    10751075        } while (rc == VINF_EM_RAW_INTERRUPT_HYPER);
     
    11221122            rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_HWACC_RUN, pVCpu->idCpu);
    11231123            if (RT_LIKELY(rc == VINF_SUCCESS))
    1124                 rc = pVM->vmm.s.iLastGZRc;
     1124                rc = pVCpu->vmm.s.iLastGZRc;
    11251125#endif
    11261126        } while (rc == VINF_EM_RAW_INTERRUPT_HYPER);
     
    12111211            rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0);
    12121212            if (RT_LIKELY(rc == VINF_SUCCESS))
    1213                 rc = pVM->vmm.s.iLastGZRc;
     1213                rc = pVCpu->vmm.s.iLastGZRc;
    12141214#endif
    12151215        } while (rc == VINF_EM_RAW_INTERRUPT_HYPER);
     
    13151315            rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0);
    13161316            if (RT_LIKELY(rc == VINF_SUCCESS))
    1317                 rc = pVM->vmm.s.iLastGZRc;
     1317                rc = pVCpu->vmm.s.iLastGZRc;
    13181318#endif
    13191319        } while (rc == VINF_EM_RAW_INTERRUPT_HYPER);
  • trunk/src/VBox/VMM/VMMInternal.h

    r19453 r19462  
    199199    /** Array of offsets to the different switchers within the core code. */
    200200    RTUINT                      aoffSwitchers[VMMSWITCHER_MAX];
    201     uint32_t                    u32Padding0; /**< Alignment padding. */
    202 
    203     /** The last RC/R0 return code. */
    204     RTINT                       iLastGZRc;
     201
    205202    /** Resume Guest Execution. See CPUMGCResumeGuest(). */
    206203    RTRCPTR                     pfnCPUMRCResumeGuest;
     
    328325     * See VMM2VMCPU(). */
    329326    RTINT                       offVMCPU;
    330     RTINT                       offDummy;
     327
     328    /** The last RC/R0 return code. */
     329    int32_t                     iLastGZRc;
    331330
    332331    /** VMM stack, pointer to the top of the stack in R3.
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r19454 r19462  
    533533{
    534534    if (RT_UNLIKELY(idCpu >= pVM->cCPUs))
    535     {
    536         pVM->vmm.s.iLastGZRc = VERR_INVALID_PARAMETER;
    537535        return;
    538     }
    539536    PVMCPU pVCpu = &pVM->aCpus[idCpu];
    540537
     
    556553                if (RT_UNLIKELY(pVM->cCPUs > 1))
    557554                {
    558                     pVM->vmm.s.iLastGZRc = VERR_RAW_MODE_INVALID_SMP;
     555                    pVCpu->vmm.s.iLastGZRc = VERR_RAW_MODE_INVALID_SMP;
    559556                    return;
    560557                }
     
    563560                if (RT_UNLIKELY(!PGMGetHyperCR3(pVCpu)))
    564561                {
    565                     pVM->vmm.s.iLastGZRc = VERR_PGM_NO_CR3_SHADOW_ROOT;
     562                    pVCpu->vmm.s.iLastGZRc = VERR_PGM_NO_CR3_SHADOW_ROOT;
    566563                    return;
    567564                }
     
    572569                if (RT_FAILURE(rc))
    573570                {
    574                     pVM->vmm.s.iLastGZRc = rc;
     571                    pVCpu->vmm.s.iLastGZRc = rc;
    575572                    return;
    576573                }
     
    581578                TMNotifyStartOfExecution(pVCpu);
    582579                rc = pVM->vmm.s.pfnHostToGuestR0(pVM);
    583                 pVM->vmm.s.iLastGZRc = rc;
     580                pVCpu->vmm.s.iLastGZRc = rc;
    584581                TMNotifyEndOfExecution(pVCpu);
    585582
     
    604601            {
    605602                Assert(!pVM->vmm.s.fSwitcherDisabled);
    606                 pVM->vmm.s.iLastGZRc = VERR_NOT_SUPPORTED;
     603                pVCpu->vmm.s.iLastGZRc = VERR_NOT_SUPPORTED;
    607604            }
    608605            break;
     
    642639                rc = VINF_EM_RAW_INTERRUPT;
    643640            }
    644             pVM->vmm.s.iLastGZRc = rc;
     641            pVCpu->vmm.s.iLastGZRc = rc;
    645642
    646643            ASMAtomicWriteU32(&pVCpu->idHostCpu, NIL_RTCPUID);
     
    660657         */
    661658        case VMMR0_DO_NOP:
    662             pVM->vmm.s.iLastGZRc = VINF_SUCCESS;
     659            pVCpu->vmm.s.iLastGZRc = VINF_SUCCESS;
    663660            break;
    664661
     
    668665        default:
    669666            AssertMsgFailed(("%#x\n", enmOperation));
    670             pVM->vmm.s.iLastGZRc = VERR_NOT_SUPPORTED;
     667            pVCpu->vmm.s.iLastGZRc = VERR_NOT_SUPPORTED;
    671668            break;
    672669    }
  • trunk/src/VBox/VMM/VMMTests.cpp

    r19434 r19462  
    7575    rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0);
    7676    if (RT_LIKELY(rc == VINF_SUCCESS))
    77         rc = pVM->vmm.s.iLastGZRc;
     77        rc = pVCpu->vmm.s.iLastGZRc;
    7878    return rc;
    7979}
     
    115115    rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0);
    116116    if (RT_LIKELY(rc == VINF_SUCCESS))
    117         rc = pVM->vmm.s.iLastGZRc;
     117        rc = pVCpu->vmm.s.iLastGZRc;
    118118    bool fDump = false;
    119119    if (rc != rcExpect)
     
    363363            rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0);
    364364            if (RT_LIKELY(rc == VINF_SUCCESS))
    365                 rc = pVM->vmm.s.iLastGZRc;
     365                rc = pVCpu->vmm.s.iLastGZRc;
    366366            if (RT_FAILURE(rc))
    367367            {
     
    417417            rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0);
    418418            if (RT_LIKELY(rc == VINF_SUCCESS))
    419                 rc = pVM->vmm.s.iLastGZRc;
     419                rc = pVCpu->vmm.s.iLastGZRc;
    420420            uint64_t TickThisElapsed = ASMReadTSC() - TickThisStart;
    421421            if (RT_FAILURE(rc))
  • trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp

    r19434 r19462  
    872872    GEN_CHECK_OFF(VMM, pfnCPUMRCResumeGuest);
    873873    GEN_CHECK_OFF(VMM, pfnCPUMRCResumeGuestV86);
    874     GEN_CHECK_OFF(VMM, iLastGZRc);
     874    GEN_CHECK_OFF(VMMCPU, iLastGZRc);
    875875    GEN_CHECK_OFF(VMMCPU, pbEMTStackR3);
    876876    GEN_CHECK_OFF(VMMCPU, pbEMTStackRC);
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