VirtualBox

Changeset 40274 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Feb 28, 2012 1:17:35 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
76500
Message:

Introduced VBOX_WITH_REM in Config.kmk and the VMM.

Location:
trunk/src/VBox/VMM/VMMR3
Files:
21 edited

Legend:

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

    r39078 r40274  
    3030#include <VBox/vmm/mm.h>
    3131#include <VBox/vmm/em.h>
    32 #include <VBox/vmm/rem.h>
     32#ifdef VBOX_WITH_REM
     33# include <VBox/vmm/rem.h>
     34#endif
    3335#include <VBox/vmm/selm.h>
    3436#include <VBox/vmm/trpm.h>
     
    23392341        GCPtr = GCPtr & PAGE_BASE_GC_MASK;
    23402342
    2341         /* Notify the recompiler that this page has been changed. */
     2343#ifdef VBOX_WITH_REM
     2344         /* Notify the recompiler that this page has been changed. */
    23422345        REMR3NotifyCodePageChanged(pVM, pVCpu, GCPtr);
     2346#endif
    23432347
    23442348        /* Enable write protection again. (use the fault address as it might be an alias) */
  • trunk/src/VBox/VMM/VMMR3/DBGF.cpp

    r39078 r40274  
    7373#include <VBox/vmm/dbgf.h>
    7474#include <VBox/vmm/selm.h>
    75 #include <VBox/vmm/rem.h>
     75#ifdef VBOX_WITH_REM
     76# include <VBox/vmm/rem.h>
     77#endif
    7678#include <VBox/vmm/em.h>
    7779#include <VBox/vmm/hwaccm.h>
     
    409411     */
    410412    dbgfR3EventSetStoppedInHyperFlag(pVM, enmEvent);
     413#ifdef VBOX_WITH_REM
    411414    if (!pVM->dbgf.s.fStoppedInHyper)
    412415        REMR3StateUpdate(pVM, pVCpu);
     416#endif
    413417
    414418    /*
  • trunk/src/VBox/VMM/VMMR3/DBGFBp.cpp

    r39405 r40274  
    2323#include <VBox/vmm/dbgf.h>
    2424#include <VBox/vmm/selm.h>
    25 #include <VBox/vmm/rem.h>
     25#ifdef VBOX_WITH_REM
     26# include <VBox/vmm/rem.h>
     27#else
     28# include <VBox/vmm/iem.h>
     29#endif
    2630#include "DBGFInternal.h"
    2731#include <VBox/vmm/vm.h>
     
    650654        int rc = VINF_SUCCESS;
    651655        if (!pBp->fEnabled)
     656#ifdef VBOX_WITH_REM
    652657            rc = REMR3BreakpointSet(pVM, pBp->GCPtr);
     658#else
     659            rc = IEMBreakpointSet(pVM, pBp->GCPtr);
     660#endif
    653661        if (RT_SUCCESS(rc))
    654662        {
     
    674682     * Now ask REM to set the breakpoint.
    675683     */
     684#ifdef VBOX_WITH_REM
    676685    int rc = REMR3BreakpointSet(pVM, pAddress->FlatPtr);
     686#else
     687    int rc = IEMBreakpointSet(pVM, pAddress->FlatPtr);
     688#endif
    677689    if (RT_SUCCESS(rc))
    678690    {
     
    742754
    743755            case DBGFBPTYPE_REM:
     756#ifdef VBOX_WITH_REM
    744757                rc = REMR3BreakpointClear(pVM, pBp->GCPtr);
     758#else
     759                rc = IEMBreakpointClear(pVM, pBp->GCPtr);
     760#endif
    745761                break;
    746762
     
    818834
    819835        case DBGFBPTYPE_REM:
     836#ifdef VBOX_WITH_REM
    820837            rc = REMR3BreakpointSet(pVM, pBp->GCPtr);
     838#else
     839            rc = IEMBreakpointSet(pVM, pBp->GCPtr);
     840#endif
    821841            break;
    822842
     
    890910
    891911        case DBGFBPTYPE_REM:
     912#ifdef VBOX_WITH_REM
    892913            rc = REMR3BreakpointClear(pVM, pBp->GCPtr);
     914#else
     915            rc = IEMBreakpointClear(pVM, pBp->GCPtr);
     916#endif
    893917            break;
    894918
  • trunk/src/VBox/VMM/VMMR3/EM.cpp

    r39944 r40274  
    4545#include <VBox/vmm/dbgf.h>
    4646#include <VBox/vmm/pgm.h>
    47 #include <VBox/vmm/rem.h>
     47#ifdef VBOX_WITH_REM
     48# include <VBox/vmm/rem.h>
     49#else
     50# include <VBox/vmm/iem.h>
     51#endif
    4852#include <VBox/vmm/tm.h>
    4953#include <VBox/vmm/mm.h>
     
    108112    AssertCompile(sizeof(pVM->em.s) <= sizeof(pVM->em.padding));
    109113    AssertCompile(sizeof(pVM->aCpus[0].em.s.u.FatalLongJump) <= sizeof(pVM->aCpus[0].em.s.u.achPaddingFatalLongJump));
    110     AssertCompileMemberAlignment(EM, CritSectREM, sizeof(uintptr_t));
    111114
    112115    /*
     
    121124    Log(("EMR3Init: fRecompileUser=%RTbool fRecompileSupervisor=%RTbool\n", pVM->fRecompileUser, pVM->fRecompileSupervisor));
    122125
     126#ifdef VBOX_WITH_REM
    123127    /*
    124128     * Initialize the REM critical section.
    125129     */
     130    AssertCompileMemberAlignment(EM, CritSectREM, sizeof(uintptr_t));
    126131    rc = PDMR3CritSectInit(pVM, &pVM->em.s.CritSectREM, RT_SRC_POS, "EM-REM");
    127132    AssertRCReturn(rc, rc);
     133#endif
    128134
    129135    /*
     
    475481    AssertMsg(pVM->em.s.offVM, ("bad init order!\n"));
    476482
     483#ifdef VBOX_WITH_REM
    477484    PDMR3CritSectDelete(&pVM->em.s.CritSectREM);
     485#endif
    478486    return VINF_SUCCESS;
    479487}
     
    890898    LogFlow(("emR3RemStep: cs:eip=%04x:%08x\n", CPUMGetGuestCS(pVCpu),  CPUMGetGuestEIP(pVCpu)));
    891899
     900#ifdef VBOX_WITH_REM
    892901    EMRemLock(pVM);
    893902
     
    903912    EMRemUnlock(pVM);
    904913
     914#else
     915    int rc = VBOXSTRICTRC_TODO(IEMExecOne(pVCpu)); NOREF(pVM);
     916#endif
     917
    905918    LogFlow(("emR3RemStep: returns %Rrc cs:eip=%04x:%08x\n", rc, CPUMGetGuestCS(pVCpu),  CPUMGetGuestEIP(pVCpu)));
    906919    return rc;
     
    918931DECLINLINE(bool) emR3RemExecuteSyncBack(PVM pVM, PVMCPU pVCpu)
    919932{
     933#ifdef VBOX_WITH_REM
    920934    STAM_PROFILE_START(&pVCpu->em.s.StatREMSync, a);
    921935    REMR3StateBack(pVM, pVCpu);
     
    923937
    924938    EMRemUnlock(pVM);
     939#endif
    925940    return false;
    926941}
     
    966981     */
    967982    *pfFFDone = false;
     983#ifdef VBOX_WITH_REM
    968984    bool    fInREMState = false;
     985#endif
    969986    int     rc          = VINF_SUCCESS;
    970987    for (;;)
    971988    {
     989#ifdef VBOX_WITH_REM
    972990        /*
    973991         * Lock REM and update the state if not already in sync.
     
    10081026            }
    10091027        }
    1010 
     1028#endif
    10111029
    10121030        /*
     
    10161034        {
    10171035            STAM_PROFILE_START(&pVCpu->em.s.StatREMExec, c);
     1036#ifdef VBOX_WITH_REM
    10181037            rc = REMR3Run(pVM, pVCpu);
     1038#else
     1039            rc = VBOXSTRICTRC_TODO(IEMExecLots(pVCpu));
     1040#endif
    10191041            STAM_PROFILE_STOP(&pVCpu->em.s.StatREMExec, c);
    10201042        }
     
    10351057            ||  VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_HIGH_PRIORITY_POST_MASK))
    10361058        {
     1059#ifdef VBOX_WITH_REM
    10371060            fInREMState = emR3RemExecuteSyncBack(pVM, pVCpu);
     1061#endif
    10381062            rc = emR3HighPriorityPostForcedActions(pVM, pVCpu, rc);
    10391063        }
     
    10721096        {
    10731097l_REMDoForcedActions:
     1098#ifdef VBOX_WITH_REM
    10741099            if (fInREMState)
    10751100                fInREMState = emR3RemExecuteSyncBack(pVM, pVCpu);
     1101#endif
    10761102            STAM_REL_PROFILE_ADV_SUSPEND(&pVCpu->em.s.StatREMTotal, a);
    10771103            rc = emR3ForcedActions(pVM, pVCpu, rc);
     
    10881114
    10891115
     1116#ifdef VBOX_WITH_REM
    10901117    /*
    10911118     * Returning. Sync back the VM state if required.
     
    10931120    if (fInREMState)
    10941121        fInREMState = emR3RemExecuteSyncBack(pVM, pVCpu);
     1122#endif
    10951123
    10961124    STAM_REL_PROFILE_ADV_STOP(&pVCpu->em.s.StatREMTotal, a);
     
    15161544        }
    15171545
     1546#ifdef VBOX_WITH_REM
    15181547        /* Replay the handler notification changes. */
    15191548        if (VM_FF_IS_PENDING_EXCEPT(pVM, VM_FF_REM_HANDLER_NOTIFY, VM_FF_PGM_NO_MEMORY))
     
    15301559            }
    15311560        }
     1561#endif
    15321562
    15331563        /* check that we got them all  */
     
    16311661                UPDATE_RC();
    16321662            }
     1663#ifdef VBOX_WITH_REM
    16331664            /** @todo really ugly; if we entered the hlt state when exiting the recompiler and an interrupt was pending, we previously got stuck in the halted state. */
    16341665            else if (REMR3QueryPendingInterrupt(pVM, pVCpu) != REM_NO_PENDING_IRQ)
     
    16371668                UPDATE_RC();
    16381669            }
     1670#endif
    16391671        }
    16401672
  • trunk/src/VBox/VMM/VMMR3/EMHwaccm.cpp

    r39685 r40274  
    2525#include <VBox/vmm/selm.h>
    2626#include <VBox/vmm/trpm.h>
     27#include <VBox/vmm/iem.h>
    2728#include <VBox/vmm/iom.h>
    2829#include <VBox/vmm/dbgf.h>
    2930#include <VBox/vmm/pgm.h>
    30 #include <VBox/vmm/rem.h>
     31#ifdef VBOX_WITH_REM
     32# include <VBox/vmm/rem.h>
     33#endif
    3134#include <VBox/vmm/tm.h>
    3235#include <VBox/vmm/mm.h>
     
    231234    STAM_PROFILE_START(&pVCpu->em.s.StatREMEmu, a);
    232235    Log(("EMINS: %04x:%RGv RSP=%RGv\n", pCtx->cs, (RTGCPTR)pCtx->rip, (RTGCPTR)pCtx->rsp));
     236#ifdef VBOX_WITH_REM
    233237    EMRemLock(pVM);
    234238    /* Flush the recompiler TLB if the VCPU has changed. */
     
    239243    rc = REMR3EmulateInstruction(pVM, pVCpu);
    240244    EMRemUnlock(pVM);
     245#else
     246    rc = VBOXSTRICTRC_TODO(IEMExecOne(pVCpu)); NOREF(pVM);
     247#endif
    241248    STAM_PROFILE_STOP(&pVCpu->em.s.StatREMEmu, a);
    242249
  • trunk/src/VBox/VMM/VMMR3/EMRaw.cpp

    r39685 r40274  
    2727#include <VBox/vmm/selm.h>
    2828#include <VBox/vmm/trpm.h>
     29#include <VBox/vmm/iem.h>
    2930#include <VBox/vmm/iom.h>
    3031#include <VBox/vmm/dbgf.h>
    3132#include <VBox/vmm/pgm.h>
    32 #include <VBox/vmm/rem.h>
     33#ifdef VBOX_WITH_REM
     34# include <VBox/vmm/rem.h>
     35#endif
    3336#include <VBox/vmm/tm.h>
    3437#include <VBox/vmm/mm.h>
     
    397400    STAM_PROFILE_START(&pVCpu->em.s.StatREMEmu, a);
    398401    Log(("EMINS: %04x:%RGv RSP=%RGv\n", pCtx->cs, (RTGCPTR)pCtx->rip, (RTGCPTR)pCtx->rsp));
     402#ifdef VBOX_WITH_REM
    399403    EMRemLock(pVM);
    400404    /* Flush the recompiler TLB if the VCPU has changed. */
     
    405409    rc = REMR3EmulateInstruction(pVM, pVCpu);
    406410    EMRemUnlock(pVM);
     411#else
     412    rc = VBOXSTRICTRC_TODO(IEMExecOne(pVCpu));
     413#endif
    407414    STAM_PROFILE_STOP(&pVCpu->em.s.StatREMEmu, a);
    408415
     
    13881395         */
    13891396#ifdef VBOX_STRICT
     1397# ifdef VBOX_WITH_REM
    13901398        Assert(REMR3QueryPendingInterrupt(pVM, pVCpu) == REM_NO_PENDING_IRQ);
     1399# endif
    13911400        Assert(pCtx->eflags.Bits.u1VM || (pCtx->ss & X86_SEL_RPL) == 3 || (pCtx->ss & X86_SEL_RPL) == 0);
    13921401        AssertMsg(   (pCtx->eflags.u32 & X86_EFL_IF)
  • trunk/src/VBox/VMM/VMMR3/HWACCM.cpp

    r39405 r40274  
    3232#include <VBox/vmm/csam.h>
    3333#include <VBox/vmm/selm.h>
    34 #include <VBox/vmm/rem.h>
     34#ifdef VBOX_WITH_REM
     35# include <VBox/vmm/rem.h>
     36#endif
    3537#include <VBox/vmm/hwacc_vmx.h>
    3638#include <VBox/vmm/hwacc_svm.h>
  • trunk/src/VBox/VMM/VMMR3/PDMAsyncCompletion.cpp

    r39717 r40274  
    2424#include <VBox/vmm/pdm.h>
    2525#include <VBox/vmm/mm.h>
    26 #include <VBox/vmm/rem.h>
     26#ifdef VBOX_WITH_REM
     27# include <VBox/vmm/rem.h>
     28#endif
    2729#include <VBox/vmm/vm.h>
    2830#include <VBox/vmm/uvm.h>
  • trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp

    r39402 r40274  
    2626#include <VBox/vmm/pgm.h>
    2727#include <VBox/vmm/iom.h>
    28 #include <VBox/vmm/rem.h>
     28#ifdef VBOX_WITH_REM
     29# include <VBox/vmm/rem.h>
     30#endif
    2931#include <VBox/vmm/dbgf.h>
    3032#include <VBox/vmm/vmapi.h>
     
    11461148                                   rc, pDevIns->pReg->szName, pDevIns->iInstance),
    11471149                              rc);
    1148             AssertMsgReturn(u8Function <= 7, 
     1150            AssertMsgReturn(u8Function <= 7,
    11491151                            ("Configuration error: PCIFunctionNo=%d, max is 7. (%s/%d)\n",
    11501152                             u8Function, pDevIns->pReg->szName, pDevIns->iInstance),
     
    19061908    AssertMsg(pVM->pdm.s.pDmac, ("Configuration error: No DMAC controller available. This could be related to init order too!\n"));
    19071909    VM_FF_SET(pVM, VM_FF_PDM_DMA);
     1910#ifdef VBOX_WITH_REM
    19081911    REMR3NotifyDmaPending(pVM);
     1912#endif
    19091913    VMR3NotifyGlobalFFU(pVM->pUVM, VMNOTIFYFF_FLAGS_DONE_REM);
    19101914}
  • trunk/src/VBox/VMM/VMMR3/PDMDevMiscHlp.cpp

    r39402 r40274  
    55
    66/*
    7  * Copyright (C) 2006-2011 Oracle Corporation
     7 * Copyright (C) 2006-2012 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    2323#include "PDMInternal.h"
    2424#include <VBox/vmm/pdm.h>
    25 #include <VBox/vmm/rem.h>
     25#include <VBox/vmm/pgm.h>
     26#ifdef VBOX_WITH_REM
     27# include <VBox/vmm/rem.h>
     28#endif
    2629#include <VBox/vmm/vm.h>
    2730#include <VBox/vmm/vmm.h>
     
    6063
    6164    VMCPU_FF_SET(pVCpu, VMCPU_FF_INTERRUPT_PIC);
     65#ifdef VBOX_WITH_REM
    6266    REMR3NotifyInterruptSet(pVM, pVCpu);
     67#endif
    6368    VMR3NotifyCpuFFU(pVCpu->pUVCpu, VMNOTIFYFF_FLAGS_DONE_REM | VMNOTIFYFF_FLAGS_POKE);
    6469}
     
    8691
    8792    VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_INTERRUPT_PIC);
     93#ifdef VBOX_WITH_REM
    8894    REMR3NotifyInterruptClear(pVM, pVCpu);
     95#endif
    8996}
    9097
     
    190197            break;
    191198    }
     199#ifdef VBOX_WITH_REM
    192200    REMR3NotifyInterruptSet(pVM, pVCpu);
     201#endif
    193202    VMR3NotifyCpuFFU(pVCpu->pUVCpu, VMNOTIFYFF_FLAGS_DONE_REM | VMNOTIFYFF_FLAGS_POKE);
    194203}
     
    220229            break;
    221230    }
     231#ifdef VBOX_WITH_REM
    222232    REMR3NotifyInterruptClear(pVM, pVCpu);
     233#endif
    223234}
    224235
  • trunk/src/VBox/VMM/VMMR3/PDMDevice.cpp

    r39839 r40274  
    2727#include <VBox/vmm/iom.h>
    2828#include <VBox/vmm/cfgm.h>
    29 #include <VBox/vmm/rem.h>
     29#ifdef VBOX_WITH_REM
     30# include <VBox/vmm/rem.h>
     31#endif
    3032#include <VBox/vmm/dbgf.h>
    3133#include <VBox/vmm/vm.h>
  • trunk/src/VBox/VMM/VMMR3/PDMDriver.cpp

    r39858 r40274  
    663663    {
    664664        PPDMDRV pDrv = pdmR3DrvLookup(pVM, pszName);
    665         MMR3HeapFree(pszName);
    666665        if (    pDrv
    667666            &&  pDrv->cInstances < pDrv->pReg->cMaxInstances)
     
    793792            rc = VERR_PDM_DRIVER_NOT_FOUND;
    794793        }
     794        MMR3HeapFree(pszName);
    795795    }
    796796    else
  • trunk/src/VBox/VMM/VMMR3/PDMQueue.cpp

    r39137 r40274  
    2424#include <VBox/vmm/pdm.h>
    2525#include <VBox/vmm/mm.h>
    26 #include <VBox/vmm/rem.h>
     26#ifdef VBOX_WITH_REM
     27# include <VBox/vmm/rem.h>
     28#endif
    2729#include <VBox/vmm/vm.h>
    2830#include <VBox/vmm/uvm.h>
  • trunk/src/VBox/VMM/VMMR3/PGM.cpp

    r40054 r40274  
    582582#include <VBox/vmm/em.h>
    583583#include <VBox/vmm/stam.h>
    584 #include <VBox/vmm/rem.h>
     584#ifdef VBOX_WITH_REM
     585# include <VBox/vmm/rem.h>
     586#endif
    585587#include <VBox/vmm/selm.h>
    586588#include <VBox/vmm/ssm.h>
  • trunk/src/VBox/VMM/VMMR3/PGMHandler.cpp

    r36891 r40274  
    3030#include <VBox/vmm/stam.h>
    3131#include <VBox/vmm/csam.h>
    32 #include <VBox/vmm/rem.h>
     32#ifdef VBOX_WITH_REM
     33# include <VBox/vmm/rem.h>
     34#endif
    3335#include <VBox/vmm/dbgf.h>
    34 #include <VBox/vmm/rem.h>
     36#ifdef VBOX_WITH_REM
     37# include <VBox/vmm/rem.h>
     38#endif
    3539#include <VBox/vmm/selm.h>
    3640#include <VBox/vmm/ssm.h>
  • trunk/src/VBox/VMM/VMMR3/PGMPhys.cpp

    r39745 r40274  
    2525#include <VBox/vmm/mm.h>
    2626#include <VBox/vmm/stam.h>
    27 #include <VBox/vmm/rem.h>
     27#ifdef VBOX_WITH_REM
     28# include <VBox/vmm/rem.h>
     29#endif
    2830#include <VBox/vmm/pdmdev.h>
    2931#include "PGMInternal.h"
     
    17341736    pgmUnlock(pVM);
    17351737
     1738#ifdef VBOX_WITH_REM
    17361739    /*
    17371740     * Notify REM.
    17381741     */
    17391742    REMR3NotifyPhysRamRegister(pVM, GCPhys, cb, REM_NOTIFY_PHYS_RAM_FLAGS_RAM);
     1743#endif
    17401744
    17411745    return VINF_SUCCESS;
     
    27542758        pgmUnlock(pVM);
    27552759
     2760#ifdef VBOX_WITH_REM
    27562761        REMR3NotifyPhysRamRegister(pVM, GCPhys, cb, REM_NOTIFY_PHYS_RAM_FLAGS_MMIO2);
     2762#endif
    27572763    }
    27582764
     
    27952801    pgmLock(pVM);
    27962802
     2803#ifdef VBOX_WITH_REM
    27972804    RTGCPHYS    GCPhysRangeREM;
    27982805    RTGCPHYS    cbRangeREM;
    27992806    bool        fInformREM;
     2807#endif
    28002808    if (pCur->fOverlapping)
    28012809    {
     
    28162824        /* Flush physical page map TLB. */
    28172825        pgmPhysInvalidatePageMapTLB(pVM);
    2818 
     2826#ifdef VBOX_WITH_REM
    28192827        GCPhysRangeREM = NIL_RTGCPHYS;  /* shuts up gcc */
    28202828        cbRangeREM     = RTGCPHYS_MAX;  /* ditto */
    28212829        fInformREM     = false;
     2830#endif
    28222831    }
    28232832    else
    28242833    {
     2834#ifdef VBOX_WITH_REM
    28252835        GCPhysRangeREM = pCur->RamRange.GCPhys;
    28262836        cbRangeREM     = pCur->RamRange.cb;
    28272837        fInformREM     = true;
    2828 
     2838#endif
    28292839        pgmR3PhysUnlinkRamRange(pVM, &pCur->RamRange);
    28302840    }
     
    28472857    pgmUnlock(pVM);
    28482858
     2859#ifdef VBOX_WITH_REM
    28492860    if (fInformREM)
    28502861        REMR3NotifyPhysRamDeregister(pVM, GCPhysRangeREM, cbRangeREM);
     2862#endif
    28512863
    28522864    return VINF_SUCCESS;
     
    31833195            if (fFlags & PGMPHYS_ROM_FLAGS_SHADOWED)
    31843196            {
     3197#ifdef VBOX_WITH_REM
    31853198                REMR3NotifyPhysRomRegister(pVM, GCPhys, cb, NULL, true /* fShadowed */);
     3199#endif
    31863200                rc = PGMR3HandlerPhysicalRegister(pVM,
    31873201                                                  fFlags & PGMPHYS_ROM_FLAGS_SHADOWED
     
    32033217                                                  NULL, "pgmPhysRomWriteHandler", MMHyperCCToR0(pVM, pRomNew),
    32043218                                                  NULL, "pgmPhysRomWriteHandler", MMHyperCCToRC(pVM, pRomNew), pszDesc);
     3219#ifdef VBOX_WITH_REM
    32053220                REMR3NotifyPhysRomRegister(pVM, GCPhys, cb, NULL, false /* fShadowed */);
     3221#endif
    32063222            }
    32073223            if (RT_SUCCESS(rc))
     
    37053721        pVCpu->pgm.s.fA20Enabled = fEnable;
    37063722        pVCpu->pgm.s.GCPhysA20Mask = ~(RTGCPHYS)(!fEnable << 20);
     3723#ifdef VBOX_WITH_REM
    37073724        REMR3A20Set(pVCpu->pVMR3, pVCpu, fEnable);
     3725#endif
    37083726        /** @todo we're not handling this correctly for VT-x / AMD-V. See #2911 */
    37093727    }
     
    39103928                    CPUMSetChangedFlags(&pVM->aCpus[idCpu], CPUM_CHANGED_GLOBAL_TLB_FLUSH);
    39113929                }
    3912 
     3930#ifdef VBOX_WITH_REM
    39133931                /* Flush REM translation blocks. */
    39143932                REMFlushTBs(pVM);
     3933#endif
    39153934            }
    39163935        }
  • trunk/src/VBox/VMM/VMMR3/TM.cpp

    r39402 r40274  
    128128#include <VBox/vmm/dbgf.h>
    129129#include <VBox/vmm/dbgftrace.h>
    130 #include <VBox/vmm/rem.h>
     130#ifdef VBOX_WITH_REM
     131# include <VBox/vmm/rem.h>
     132#endif
    131133#include <VBox/vmm/pdmapi.h>
    132134#include <VBox/vmm/iom.h>
     
    18701872        Log5(("TM(%u): FF: 0 -> 1\n", __LINE__));
    18711873        VMCPU_FF_SET(pVCpuDst, VMCPU_FF_TIMER);
     1874#ifdef VBOX_WITH_REM
    18721875        REMR3NotifyTimerPending(pVM, pVCpuDst);
     1876#endif
    18731877        VMR3NotifyCpuFFU(pVCpuDst->pUVCpu, VMNOTIFYFF_FLAGS_DONE_REM /** @todo | VMNOTIFYFF_FLAGS_POKE ?*/);
    18741878        STAM_COUNTER_INC(&pVM->tm.s.StatTimerCallbackSetFF);
  • trunk/src/VBox/VMM/VMMR3/TRPM.cpp

    r39078 r40274  
    9090#include <VBox/vmm/vm.h>
    9191#include <VBox/vmm/em.h>
    92 #include <VBox/vmm/rem.h>
     92#ifdef VBOX_WITH_REM
     93# include <VBox/vmm/rem.h>
     94#endif
    9395#include <VBox/vmm/hwaccm.h>
    9496
     
    14681470    Assert(enmEvent == TRPM_HARDWARE_INT);
    14691471
    1470     if (   REMR3QueryPendingInterrupt(pVM, pVCpu) == REM_NO_PENDING_IRQ
    1471         && !EMIsSupervisorCodeRecompiled(pVM))
     1472    if (   !EMIsSupervisorCodeRecompiled(pVM)
     1473#ifdef VBOX_WITH_REM
     1474        && REMR3QueryPendingInterrupt(pVM, pVCpu) == REM_NO_PENDING_IRQ
     1475#endif
     1476        )
    14721477    {
    14731478#ifdef TRPM_FORWARD_TRAPS_IN_GC
     
    15181523            else
    15191524                STAM_COUNTER_INC(&pVM->trpm.s.StatForwardFailNoHandler);
     1525#ifdef VBOX_WITH_REM
    15201526            REMR3NotifyPendingInterrupt(pVM, pVCpu, u8Interrupt);
     1527#endif
    15211528        }
    15221529        else
  • trunk/src/VBox/VMM/VMMR3/VM.cpp

    r39916 r40274  
    5656#include <VBox/vmm/em.h>
    5757#include <VBox/vmm/iem.h>
    58 #include <VBox/vmm/rem.h>
     58#ifdef VBOX_WITH_REM
     59# include <VBox/vmm/rem.h>
     60#endif
    5961#include <VBox/vmm/tm.h>
    6062#include <VBox/vmm/stam.h>
     
    910912                if (RT_SUCCESS(rc))
    911913                {
     914#ifdef VBOX_WITH_REM
    912915                    rc = REMR3Init(pVM);
     916#endif
    913917                    if (RT_SUCCESS(rc))
    914918                    {
     
    962966                                                                        if (RT_SUCCESS(rc))
    963967                                                                            rc = TMR3InitFinalize(pVM);
     968#ifdef VBOX_WITH_REM
    964969                                                                        if (RT_SUCCESS(rc))
    965970                                                                            rc = REMR3InitFinalize(pVM);
     971#endif
    966972                                                                        if (RT_SUCCESS(rc))
    967973                                                                            rc = vmR3InitDoCompleted(pVM, VMINITCOMPLETED_RING3);
     
    10081014                            AssertRC(rc2);
    10091015                        }
     1016#ifdef VBOX_WITH_REM
    10101017                        int rc2 = REMR3Term(pVM);
    10111018                        AssertRC(rc2);
     1019#endif
    10121020                    }
    10131021                    int rc2 = PGMR3Term(pVM);
     
    24352443        rc = SELMR3Term(pVM);
    24362444        AssertRC(rc);
     2445#ifdef VBOX_WITH_REM
    24372446        rc = REMR3Term(pVM);
    24382447        AssertRC(rc);
     2448#endif
    24392449        rc = HWACCMR3Term(pVM);
    24402450        AssertRC(rc);
     
    28352845        SELMR3Reset(pVM);
    28362846        TRPMR3Reset(pVM);
     2847#ifdef VBOX_WITH_REM
    28372848        REMR3Reset(pVM);
     2849#endif
    28382850        IOMR3Reset(pVM);
    28392851        CPUMR3Reset(pVM);
  • trunk/src/VBox/VMM/VMMR3/VMEmt.cpp

    r39402 r40274  
    2525#include <VBox/vmm/em.h>
    2626#include <VBox/vmm/pdmapi.h>
    27 #include <VBox/vmm/rem.h>
     27#ifdef VBOX_WITH_REM
     28# include <VBox/vmm/rem.h>
     29#endif
    2830#include <VBox/vmm/tm.h>
    2931#include "VMInternal.h"
     
    821823            }
    822824        }
     825#ifdef VBOX_WITH_REM
    823826        else if (enmState == VMCPUSTATE_STARTED_EXEC_REM)
    824827        {
     
    826829                REMR3NotifyFF(pUVCpu->pVM);
    827830        }
     831#endif
    828832    }
    829833}
     
    952956        AssertRC(rc);
    953957    }
     958#ifdef VBOX_WITH_REM
    954959    else if (   !(fFlags & VMNOTIFYFF_FLAGS_DONE_REM)
    955960             && pUVCpu->pVCpu
    956961             && pUVCpu->pVCpu->enmState == VMCPUSTATE_STARTED_EXEC_REM)
    957962        REMR3NotifyFF(pUVCpu->pVM);
     963#endif
    958964}
    959965
  • trunk/src/VBox/VMM/VMMR3/VMM.cpp

    r39402 r40274  
    9292#include <VBox/vmm/csam.h>
    9393#include <VBox/vmm/patm.h>
    94 #include <VBox/vmm/rem.h>
     94#ifdef VBOX_WITH_REM
     95# include <VBox/vmm/rem.h>
     96#endif
    9597#include <VBox/vmm/ssm.h>
    9698#include <VBox/vmm/tm.h>
     
    21282130        }
    21292131
     2132#ifdef VBOX_WITH_REM
    21302133        /*
    21312134         * Flush REM handler notifications.
     
    21372140            break;
    21382141        }
     2142#endif
    21392143
    21402144        /*
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