VirtualBox

Changeset 13532 in vbox


Ignore:
Timestamp:
Oct 23, 2008 12:39:48 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
38381
Message:

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

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • 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;
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