VirtualBox

Changeset 13532

Show
Ignore:
Timestamp:
10/23/08 14:39:48 (3 months ago)
Author:
vboxsync
Message:

CPUMQueryGuestCtxPtr doesn't need to return a status. It can never fail.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/include/VBox/cpum.h

    r13198 r13532  
    890890VMMDECL(void)           CPUMPushHyper(PVM pVM, uint32_t u32); 
    891891VMMDECL(void)           CPUMHyperSetCtxCore(PVM pVM, PCPUMCTXCORE pCtxCore); 
    892 VMMDECL(int)            CPUMQueryGuestCtxPtr(PVM pVM, PCPUMCTX *ppCtx); 
     892VMMDECL(PCPUMCTX)       CPUMQueryGuestCtxPtr(PVM pVM); 
    893893VMMDECL(int)            CPUMQueryHyperCtxPtr(PVM pVM, PCPUMCTX *ppCtx); 
    894894VMMDECL(PCCPUMCTXCORE)  CPUMGetGuestCtxCore(PVM pVM); 
  • trunk/src/VBox/VMM/DBGF.cpp

    r13005 r13532  
    558558        uint32_t eip = CPUMGetGuestEIP(pVM); 
    559559#else 
    560         PCPUMCTX pCtx; 
    561         CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    562         RTGCPTR eip = pCtx->rip + pCtx->csHid.u64Base; 
     560        PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVM); 
     561        RTGCPTR  eip = pCtx->rip + pCtx->csHid.u64Base; 
    563562#endif 
    564563        for (iBp = 0; iBp < RT_ELEMENTS(pVM->dbgf.s.aBreakpoints); iBp++) 
  • trunk/src/VBox/VMM/EM.cpp

    r13413 r13532  
    132132    pVM->em.s.fForceRAW = false; 
    133133 
    134     rc = CPUMQueryGuestCtxPtr(pVM, &pVM->em.s.pCtx); 
    135     AssertMsgRC(rc, ("CPUMQueryGuestCtxPtr -> %Vrc\n", rc)); 
     134    pVM->em.s.pCtx = CPUMQueryGuestCtxPtr(pVM); 
    136135    pVM->em.s.pPatmGCState = PATMR3QueryGCStateHC(pVM); 
    137136    AssertMsg(pVM->em.s.pPatmGCState, ("PATMR3QueryGCStateHC failed!\n")); 
  • trunk/src/VBox/VMM/HWACCM.cpp

    r13434 r13532  
    797797            PCPUMCTX pCtx; 
    798798 
    799             CPUMQueryGuestCtxPtr(pVM, &pCtx); 
     799            pCtx = CPUMQueryGuestCtxPtr(pVM); 
    800800 
    801801            /* After a real mode switch to protected mode we must force 
  • trunk/src/VBox/VMM/PATM/CSAM.cpp

    r13144 r13532  
    24052405                                                       0x2F};      /* OpenBSD 4.0 after install */ 
    24062406 
    2407                 rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    2408                 AssertRC(rc);   /* can't fail */ 
     2407                pCtx = CPUMQueryGuestCtxPtr(pVM); 
    24092408 
    24102409                for (unsigned i=0;i<RT_ELEMENTS(aOpenBsdPushCSOffset);i++) 
  • trunk/src/VBox/VMM/PATM/PATM.cpp

    r13144 r13532  
    419419    { 
    420420        PCPUMCTX pCtx; 
    421         int      rc; 
    422421 
    423422        /* Update CPUMCTX guest context pointer. */ 
     
    428427        RTAvloU32DoWithAll(&pVM->patm.s.PatchLookupTreeHC->PatchTree, true, RelocatePatches, (void *)pVM); 
    429428 
    430         rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    431         AssertRC(rc); 
     429        pCtx = CPUMQueryGuestCtxPtr(pVM); 
    432430 
    433431        /* If we are running patch code right now, then also adjust EIP. */ 
     
    39933991 
    39943992    /* Make sure the code selector is wide open; otherwise refuse. */ 
    3995     CPUMQueryGuestCtxPtr(pVM, &pCtx); 
     3993    pCtx = CPUMQueryGuestCtxPtr(pVM); 
    39963994    if (CPUMGetGuestCPL(pVM, CPUMCTX2CORE(pCtx)) == 0) 
    39973995    { 
     
    61836181            RTRCPTR retaddr; 
    61846182            PCPUMCTX pCtx; 
    6185             int      rc; 
    6186  
    6187             rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    6188             AssertRC(rc); 
     6183 
     6184            pCtx = CPUMQueryGuestCtxPtr(pVM); 
    61896185 
    61906186            rc = PGMPhysSimpleReadGCPtr(pVM, &retaddr, pCtx->esp, sizeof(retaddr)); 
  • trunk/src/VBox/VMM/PATM/VMMAll/PATMAll.cpp

    r12989 r13532  
    7171#ifdef PATM_EMULATE_SYSENTER 
    7272    PCPUMCTX pCtx; 
    73     int      rc; 
    7473 
    7574    /* Check if the sysenter handler has changed. */ 
    76     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    77     AssertRC(rc); 
    78     if (   rc == VINF_SUCCESS 
    79         && pCtx->SysEnter.cs  != 0 
     75    pCtx = CPUMQueryGuestCtxPtr(pVM); 
     76    if (   pCtx->SysEnter.cs  != 0 
    8077        && pCtx->SysEnter.eip != 0 
    8178       ) 
     
    301298VMMDECL(bool) PATMAreInterruptsEnabled(PVM pVM) 
    302299{ 
    303     PCPUMCTX pCtx = 0; 
    304     int      rc; 
    305  
    306     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    307     AssertRC(rc); 
     300    PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVM); 
    308301 
    309302    return PATMAreInterruptsEnabledByCtxCore(pVM, CPUMCTX2CORE(pCtx)); 
     
    389382VMMDECL(int) PATMSysCall(PVM pVM, PCPUMCTXCORE pRegFrame, PDISCPUSTATE pCpu) 
    390383{ 
    391     PCPUMCTX pCtx; 
    392     int      rc; 
    393  
    394     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    395     AssertRCReturn(rc, VINF_EM_RAW_RING_SWITCH); 
     384    PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVM); 
    396385 
    397386    if (pCpu->pCurInstr->opcode == OP_SYSENTER) 
  • trunk/src/VBox/VMM/TRPM.cpp

    r13144 r13532  
    13431343    int      rc; 
    13441344 
    1345     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    1346     AssertRC(rc); 
     1345    pCtx = CPUMQueryGuestCtxPtr(pVM); 
    13471346    Assert(!PATMIsPatchGCAddr(pVM, (RTGCPTR)pCtx->eip)); 
    13481347    Assert(!VM_FF_ISSET(pVM, VM_FF_INHIBIT_INTERRUPTS)); 
  • trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp

    r12989 r13532  
    452452 * Queries the pointer to the internal CPUMCTX structure 
    453453 * 
    454  * @returns VBox status code
     454 * @returns The CPUMCTX pointer
    455455 * @param   pVM         Handle to the virtual machine. 
    456  * @param   ppCtx       Receives the CPUMCTX pointer when successful. 
    457  */ 
    458 VMMDECL(int) CPUMQueryGuestCtxPtr(PVM pVM, PCPUMCTX *ppCtx) 
    459 
    460     *ppCtx = &pVM->cpum.s.Guest; 
    461     return VINF_SUCCESS; 
     456 */ 
     457VMMDECL(PCPUMCTX) CPUMQueryGuestCtxPtr(PVM pVM) 
     458
     459    return &pVM->cpum.s.Guest; 
    462460} 
    463461 
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r13447 r13532  
    25412541    uint64_t val; 
    25422542    CPUMCTX *pCtx; 
    2543     int      rc
     2543    int      rc = VINF_SUCCESS
    25442544 
    25452545    /** @todo According to the Intel manuals, there's a REX version of RDMSR that is slightly different. 
    25462546     *  That version clears the high dwords of both RDX & RAX */ 
    2547     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    2548     AssertRC(rc); 
     2547    pCtx = CPUMQueryGuestCtxPtr(pVM); 
    25492548 
    25502549    /* Get the current privilege level. */ 
     
    26692668    uint64_t val; 
    26702669    CPUMCTX *pCtx; 
    2671     int      rc; 
    26722670 
    26732671    /* Note: works the same in 32 and 64 bits modes. */ 
    2674     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    2675     AssertRC(rc); 
     2672    pCtx = CPUMQueryGuestCtxPtr(pVM); 
    26762673 
    26772674    /* Get the current privilege level. */ 
     
    26892686    { 
    26902687    case MSR_IA32_APICBASE: 
    2691         rc = PDMApicSetBase(pVM, val); 
     2688    { 
     2689        int rc = PDMApicSetBase(pVM, val); 
    26922690        AssertRC(rc); 
    26932691        break; 
     2692    } 
    26942693 
    26952694    case MSR_IA32_CR_PAT: 
  • trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp

    r13517 r13532  
    7777 
    7878    /** Maximum ASID allowed. */ 
    79     uint32_t                  uMaxASID; 
     79    uint32_t                        uMaxASID; 
    8080 
    8181    struct 
     
    128128    } cpuid; 
    129129 
    130     HWACCMSTATE     enmHwAccmState; 
    131  
    132     bool            fSuspended; 
     130    HWACCMSTATE                     enmHwAccmState; 
     131 
     132    volatile        bool            fSuspended; 
    133133} HWACCMR0Globals; 
    134134 
     
    530530 
    531531    /* Make sure we don't touch hwaccm after we've disabled hwaccm in preparation of a suspend. */ 
    532     if (HWACCMR0Globals.fSuspended
     532    if (ASMAtomicReadBool(&HWACCMR0Globals.fSuspended)
    533533        return VERR_HWACCM_SUSPEND_PENDING; 
    534534 
     
    686686 
    687687    if (enmEvent == RTPOWEREVENT_SUSPEND) 
    688         HWACCMR0Globals.fSuspended = true
     688        ASMAtomicWriteBool(&HWACCMR0Globals.fSuspended, true)
    689689 
    690690    if (HWACCMR0Globals.enmHwAccmState == HWACCMSTATE_ENABLED) 
     
    720720    } 
    721721    if (enmEvent == RTPOWEREVENT_RESUME) 
    722         HWACCMR0Globals.fSuspended = false
     722        ASMAtomicWriteBool(&HWACCMR0Globals.fSuspended, false)
    723723} 
    724724 
     
    742742 
    743743    /* Make sure we don't touch hwaccm after we've disabled hwaccm in preparation of a suspend. */ 
    744     if (HWACCMR0Globals.fSuspended
     744    if (ASMAtomicReadBool(&HWACCMR0Globals.fSuspended)
    745745        return VERR_HWACCM_SUSPEND_PENDING; 
    746746 
     
    800800 
    801801    /* Make sure we don't touch hwaccm after we've disabled hwaccm in preparation of a suspend. */ 
    802     AssertReturn(!HWACCMR0Globals.fSuspended, VERR_HWACCM_SUSPEND_PENDING); 
     802    AssertReturn(!ASMAtomicReadBool(&HWACCMR0Globals.fSuspended), VERR_HWACCM_SUSPEND_PENDING); 
    803803 
    804804    /* Terminate a VT-x or AMD-V VM. */ 
     
    818818 
    819819    /* Make sure we don't touch hwaccm after we've disabled hwaccm in preparation of a suspend. */ 
    820     AssertReturn(!HWACCMR0Globals.fSuspended, VERR_HWACCM_SUSPEND_PENDING); 
     820    AssertReturn(!ASMAtomicReadBool(&HWACCMR0Globals.fSuspended), VERR_HWACCM_SUSPEND_PENDING); 
    821821 
    822822#ifdef LOG_ENABLED 
     
    842842 
    843843    /* Make sure we can't enter a session after we've disabled hwaccm in preparation of a suspend. */ 
    844     AssertReturn(!HWACCMR0Globals.fSuspended, VERR_HWACCM_SUSPEND_PENDING); 
    845  
    846     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    847     if (VBOX_FAILURE(rc)) 
    848         return rc; 
     844    AssertReturn(!ASMAtomicReadBool(&HWACCMR0Globals.fSuspended), VERR_HWACCM_SUSPEND_PENDING); 
     845 
     846    pCtx = CPUMQueryGuestCtxPtr(pVM); 
    849847 
    850848    /* Always load the guest's FPU/XMM state on-demand. */ 
     
    894892    int      rc; 
    895893 
    896     AssertReturn(!HWACCMR0Globals.fSuspended, VERR_HWACCM_SUSPEND_PENDING); 
    897  
    898     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    899     if (VBOX_FAILURE(rc)) 
    900         return rc; 
     894    AssertReturn(!ASMAtomicReadBool(&HWACCMR0Globals.fSuspended), VERR_HWACCM_SUSPEND_PENDING); 
     895 
     896    pCtx = CPUMQueryGuestCtxPtr(pVM); 
    901897 
    902898    /* Note:  It's rather tricky with longjmps done by e.g. Log statements or the page fault handler. 
     
    939935    Assert(!VM_FF_ISPENDING(pVM, VM_FF_PGM_SYNC_CR3 | VM_FF_PGM_SYNC_CR3_NON_GLOBAL)); 
    940936    Assert(HWACCMR0Globals.aCpuInfo[idCpu].fConfigured); 
    941     AssertReturn(!HWACCMR0Globals.fSuspended, VERR_HWACCM_SUSPEND_PENDING); 
    942  
    943     rc = CPUMQueryGuestCtxPtr(pVM, &pCtx); 
    944     if (VBOX_FAILURE(rc)) 
    945         return rc; 
     937    AssertReturn(!ASMAtomicReadBool(&HWACCMR0Globals.fSuspended), VERR_HWACCM_SUSPEND_PENDING); 
     938 
     939    pCtx = CPUMQueryGuestCtxPtr(pVM); 
    946940 
    947941    return HWACCMR0Globals.pfnRunGuestCode(pVM, pCtx); 
     
    955949VMMR0DECL(bool) HWACCMR0SuspendPending() 
    956950{ 
    957     return HWACCMR0Globals.fSuspended
     951    return ASMAtomicReadBool(&HWACCMR0Globals.fSuspended)
    958952} 
    959953 
  • trunk/src/VBox/VMM/VMMTests.cpp

    r12975 r13532  
    532532 
    533533            CPUMQueryHyperCtxPtr(pVM, &pHyperCtx); 
    534             CPUMQueryGuestCtxPtr(pVM, &pGuestCtx); 
     534            pGuestCtx = CPUMQueryGuestCtxPtr(pVM); 
    535535 
    536536            /* Copy the hypervisor context to make sure we have a valid guest context. */ 
  • trunk/src/recompiler/VBoxREMWrapper.cpp

    r13375 r13532  
    495495static const REMPARMDESC g_aArgsCPUMQueryGuestCtxPtr[] = 
    496496{ 
    497     { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL }, 
    498     { REMPARMDESC_FLAGS_INT,        sizeof(PCPUMCTX *), NULL } 
     497    { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL } 
    499498}; 
    500499static const REMPARMDESC g_aArgsCSAMR3MonitorPage[] = 
     
    10581057    { "CPUMGetGuestCS",                         (void *)(uintptr_t)&CPUMGetGuestCS,                 &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(RTSEL),      NULL }, 
    10591058    { "CPUMGetGuestSS",                         (void *)(uintptr_t)&CPUMGetGuestSS,                 &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(RTSEL),      NULL }, 
    1060     { "CPUMQueryGuestCtxPtr",                   (void *)(uintptr_t)&CPUMQueryGuestCtxPtr,           &g_aArgsCPUMQueryGuestCtxPtr[0],            RT_ELEMENTS(g_aArgsCPUMQueryGuestCtxPtr),              REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL }, 
     1059    { "CPUMQueryGuestCtxPtr",                   (void *)(uintptr_t)&CPUMQueryGuestCtxPtr,           &g_aArgsCPUMQueryGuestCtxPtr[0],            RT_ELEMENTS(g_aArgsCPUMQueryGuestCtxPtr),              REMFNDESC_FLAGS_RET_INT,    sizeof(PCPUMCTX),   NULL }, 
    10611060    { "CSAMR3MonitorPage",                      (void *)(uintptr_t)&CSAMR3MonitorPage,              &g_aArgsCSAMR3MonitorPage[0],               RT_ELEMENTS(g_aArgsCSAMR3MonitorPage),                 REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL }, 
    10621061    { "CSAMR3UnmonitorPage",                    (void *)(uintptr_t)&CSAMR3UnmonitorPage,            &g_aArgsCSAMR3UnmonitorPage[0],             RT_ELEMENTS(g_aArgsCSAMR3UnmonitorPage),               REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL }, 
  • trunk/src/recompiler/VBoxRecompiler.c

    r13375 r13532  
    279279 
    280280    /* ctx. */ 
    281     int rc = CPUMQueryGuestCtxPtr(pVM, &pVM->rem.s.pCtx); 
    282     if (VBOX_FAILURE(rc)) 
    283     { 
    284         AssertMsgFailed(("Failed to obtain guest ctx pointer. rc=%Vrc\n", rc)); 
    285         return rc; 
    286     } 
     281    pVM->rem.s.pCtx = CPUMQueryGuestCtxPtr(pVM); 
    287282    AssertMsg(MMR3PhysGetRamSize(pVM) == 0, ("Init order have changed! REM depends on notification about ALL physical memory registrations\n")); 
    288283 
     
    327322     * Register the saved state data unit. 
    328323     */ 
    329     rc = SSMR3RegisterInternal(pVM, "rem", 1, REM_SAVED_STATE_VERSION, sizeof(uint32_t) * 10, 
    330                                NULL, remR3Save, NULL, 
    331                                NULL, remR3Load, NULL); 
     324    int rc = SSMR3RegisterInternal(pVM, "rem", 1, REM_SAVED_STATE_VERSION, sizeof(uint32_t) * 10, 
     325                                   NULL, remR3Save, NULL, 
     326                                   NULL, remR3Load, NULL); 
    332327    if (VBOX_FAILURE(rc)) 
    333328        return rc; 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy