VirtualBox

Changeset 13035 in vbox


Ignore:
Timestamp:
Oct 7, 2008 9:54:32 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
37476
Message:

#1865: More PGM...

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/pgm.h

    r13005 r13035  
    459459VMMR0DECL(int)  PGMR0PhysAllocateHandyPages(PVM pVM);
    460460VMMR0DECL(int)  PGMR0Trap0eHandlerNestedPaging(PVM pVM, PGMMODE enmShwPagingMode, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPHYS pvFault);
     461# ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
     462VMMR0DECL(int)  PGMR0DynMapGCPage(PVM pVM, RTGCPHYS GCPhys, void **ppv);
     463VMMR0DECL(int)  PGMR0DynMapGCPageEx(PVM pVM, RTGCPHYS GCPhys, void **ppv);
     464VMMR0DECL(int)  PGMR0DynMapHCPage(PVM pVM, RTHCPHYS HCPhys, void **ppv);
     465# endif
    461466/** @} */
    462467#endif /* IN_RING0 */
     
    556561VMMR3DECL(int)  PGMR3CheckIntegrity(PVM pVM);
    557562
    558 VMMR3DECL(int)  PGMR3DbgHCPtr2GCPhys(PVM pVM, RTHCPTR HCPtr, PRTGCPHYS pGCPhys);
    559 VMMR3DECL(int)  PGMR3DbgHCPtr2HCPhys(PVM pVM, RTHCPTR HCPtr, PRTHCPHYS pHCPhys);
     563VMMR3DECL(int)  PGMR3DbgR3Ptr2GCPhys(PVM pVM, RTR3PTR R3Ptr, PRTGCPHYS pGCPhys);
     564VMMR3DECL(int)  PGMR3DbgR3Ptr2HCPhys(PVM pVM, RTR3PTR R3Ptr, PRTHCPHYS pHCPhys);
    560565VMMR3DECL(int)  PGMR3DbgHCPhys2GCPhys(PVM pVM, RTHCPHYS HCPhys, PRTGCPHYS pGCPhys);
    561566VMMR3DECL(int)  PGMR3DbgScanPhysical(PVM pVM, RTGCPHYS GCPhys, RTGCPHYS cbRange, const uint8_t *pabNeedle, size_t cbNeedle, PRTGCPHYS pGCPhysHit);
  • trunk/src/VBox/VMM/Makefile.kmk

    r12991 r13035  
    4141VMMR3_DEFS     += VBOX_WITH_PREALLOC_RAM_BY_DEFAULT
    4242endif
     43VMMR3_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
    4344VMMR3_INCS     := \
    4445        $(PATH_SUB_CURRENT) \
     
    175176VBoxVMM_TEMPLATE = VBOXR3
    176177VBoxVMM_DEFS = $(VMMR3_DEFS)
     178VBoxVMM_DEFS.$(KBUILD_TARGET) = $(VMMR3_DEFS.$(KBUILD_TARGET))
    177179VBoxVMM_SOURCES = VBoxVMMDeps.cpp
    178180VBoxVMM_SONAME.linux = VBoxVMM.so
     
    268270VMMGC_DEFS     += VBOX_WITH_IDT_PATCHING
    269271endif
     272VMMGC_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
    270273VMMGC_SYSSUFF   = .gc
    271274VMMGC_LIBS      = \
     
    354357VMMR0_DEFS     += VBOX_WITH_IDT_PATCHING
    355358endif
     359VMMR0_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
    356360ifeq ($(VBOX_LDR_FMT),pe)
    357361VMMR0_LDFLAGS   = -Entry:VMMR0EntryEx
  • trunk/src/VBox/VMM/PGM.cpp

    r13019 r13035  
    18711871    if (pVM->pgm.s.pRamRangesR3)
    18721872    {
    1873         pVM->pgm.s.pRamRangesGC = MMHyperHC2GC(pVM, pVM->pgm.s.pRamRangesR3);
     1873        pVM->pgm.s.pRamRangesRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pRamRangesR3);
    18741874        for (PPGMRAMRANGE pCur = pVM->pgm.s.pRamRangesR3; pCur->pNextR3; pCur = pCur->pNextR3)
    18751875#ifdef VBOX_WITH_NEW_PHYS_CODE
    1876             pCur->pNextGC = MMHyperR3ToRC(pVM, pCur->pNextR3);
     1876            pCur->pNextRC = MMHyperR3ToRC(pVM, pCur->pNextR3);
    18771877#else
    18781878        {
    1879             pCur->pNextGC = MMHyperR3ToRC(pVM, pCur->pNextR3);
     1879            pCur->pNextRC = MMHyperR3ToRC(pVM, pCur->pNextR3);
    18801880            if (pCur->pavHCChunkGC)
    18811881                pCur->pavHCChunkGC = MMHyperHC2GC(pVM, pCur->pavHCChunkHC);
     
    21462146        SSMR3PutGCPhys(pSSM, pRam->GCPhysLast);
    21472147        SSMR3PutGCPhys(pSSM, pRam->cb);
    2148         SSMR3PutU8(pSSM, !!pRam->pvHC);             /* boolean indicating memory or not. */
     2148        SSMR3PutU8(pSSM, !!pRam->pvR3);             /* boolean indicating memory or not. */
    21492149
    21502150        /* Flags. */
     
    21672167            }
    21682168        }
    2169         else if (pRam->pvHC)
     2169        else if (pRam->pvR3)
    21702170        {
    2171             int rc = SSMR3PutMem(pSSM, pRam->pvHC, pRam->cb);
     2171            int rc = SSMR3PutMem(pSSM, pRam->pvR3, pRam->cb);
    21722172            if (VBOX_FAILURE(rc))
    21732173            {
    2174                 Log(("pgmR3Save: SSMR3PutMem(, %p, %#x) -> %Vrc\n", pRam->pvHC, pRam->cb, rc));
     2174                Log(("pgmR3Save: SSMR3PutMem(, %p, %#x) -> %Vrc\n", pRam->pvR3, pRam->cb, rc));
    21752175                return rc;
    21762176            }
     
    23412341            ||  GCPhysLast != pRam->GCPhysLast
    23422342            ||  cb != pRam->cb
    2343             ||  fHaveBits != !!pRam->pvHC)
     2343            ||  fHaveBits != !!pRam->pvR3)
    23442344        {
    2345             LogRel(("Ram range: %VGp-%VGp %VGp bytes %s\n"
    2346                     "State    : %VGp-%VGp %VGp bytes %s\n",
    2347                     pRam->GCPhys, pRam->GCPhysLast, pRam->cb, pRam->pvHC ? "bits" : "nobits",
     2345            LogRel(("Ram range: %RGp-%RGp %RGp bytes %s\n"
     2346                    "State    : %RGp-%RGp %RGp bytes %s\n",
     2347                    pRam->GCPhys, pRam->GCPhysLast, pRam->cb, pRam->pvR3 ? "bits" : "nobits",
    23482348                    GCPhys, GCPhysLast, cb, fHaveBits ? "bits" : "nobits"));
    23492349            /*
     
    24042404            }
    24052405        }
    2406         else if (pRam->pvHC)
     2406        else if (pRam->pvR3)
    24072407        {
    2408             int rc = SSMR3GetMem(pSSM, pRam->pvHC, pRam->cb);
     2408            int rc = SSMR3GetMem(pSSM, pRam->pvR3, pRam->cb);
    24092409            if (VBOX_FAILURE(rc))
    24102410            {
    2411                 Log(("pgmR3Save: SSMR3GetMem(, %p, %#x) -> %Vrc\n", pRam->pvHC, pRam->cb, rc));
     2411                Log(("pgmR3Save: SSMR3GetMem(, %p, %#x) -> %Vrc\n", pRam->pvR3, pRam->cb, rc));
    24122412                return rc;
    24132413            }
     
    25232523                        pCur->GCPhys,
    25242524                        pCur->GCPhysLast,
    2525                         pCur->pvHC,
     2525                        pCur->pvR3,
    25262526                        pCur->pszDesc);
    25272527}
     
    40544054    if (!pVM)
    40554055        return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "error: The command requires a VM to be selected.\n");
    4056     if (!pVM->pgm.s.pRamRangesGC)
     4056    if (!pVM->pgm.s.pRamRangesRC)
    40574057        return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "Sorry, no Ram is registered.\n");
    40584058
     
    40654065    {
    40664066        rc = pCmdHlp->pfnPrintf(pCmdHlp, NULL,
    4067             "%VGp - %VGp  %p\n",
    4068             pRam->GCPhys, pRam->GCPhysLast, pRam->pvHC);
     4067            "%RGp - %RGp  %p\n",
     4068            pRam->GCPhys, pRam->GCPhysLast, pRam->pvR3);
    40694069        if (VBOX_FAILURE(rc))
    40704070            return rc;
  • trunk/src/VBox/VMM/PGMDbg.cpp

    r12989 r13035  
    4141
    4242/**
    43  * Converts a HC pointer to a GC physical address.
     43 * Converts a R3 pointer to a GC physical address.
    4444 *
    4545 * Only for the debugger.
     
    4949 * @retval  VERR_INVALID_POINTER if the pointer is not within the GC physical memory.
    5050 *
    51  * @param   pVM     The VM handle.
    52  * @param   HCPtr   The HC pointer to convert.
    53  * @param   pGCPhys Where to store the GC physical address on success.
    54  */
    55 VMMR3DECL(int) PGMR3DbgHCPtr2GCPhys(PVM pVM, RTHCPTR HCPtr, PRTGCPHYS pGCPhys)
     51 * @param   pVM         The VM handle.
     52 * @param   R3Ptr       The R3 pointer to convert.
     53 * @param   pGCPhys     Where to store the GC physical address on success.
     54 */
     55VMMR3DECL(int) PGMR3DbgR3Ptr2GCPhys(PVM pVM, RTR3PTR R3Ptr, PRTGCPHYS pGCPhys)
    5656{
    5757#ifdef VBOX_WITH_NEW_PHYS_CODE
     
    6060
    6161#else
    62     for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     62    for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    6363         pRam;
    64          pRam = CTXALLSUFF(pRam->pNext))
     64         pRam = pRam->CTX_SUFF(pNext))
    6565    {
    6666        if (pRam->fFlags & MM_RAM_FLAGS_DYNAMIC_ALLOC)
     
    6868            for (unsigned iChunk = 0; iChunk < (pRam->cb >> PGM_DYNAMIC_CHUNK_SHIFT); iChunk++)
    6969            {
    70                 if (CTXSUFF(pRam->pavHCChunk)[iChunk])
     70                if (pRam->pavHCChunkHC[iChunk])
    7171                {
    72                     RTHCUINTPTR off = (RTHCUINTPTR)HCPtr - (RTHCUINTPTR)CTXSUFF(pRam->pavHCChunk)[iChunk];
     72                    RTR3UINTPTR off = (RTR3UINTPTR)R3Ptr - (RTR3UINTPTR)pRam->pavHCChunkHC[iChunk];
    7373                    if (off < PGM_DYNAMIC_CHUNK_SIZE)
    7474                    {
     
    7979            }
    8080        }
    81         else if (pRam->pvHC)
    82         {
    83             RTHCUINTPTR off = (RTHCUINTPTR)HCPtr - (RTHCUINTPTR)pRam->pvHC;
     81        else if (pRam->pvR3)
     82        {
     83            RTR3UINTPTR off = (RTR3UINTPTR)R3Ptr - (RTR3UINTPTR)pRam->pvR3;
    8484            if (off < pRam->cb)
    8585            {
     
    9595
    9696/**
    97  * Converts a HC pointer to a GC physical address.
     97 * Converts a R3 pointer to a HC physical address.
     98 *
     99 * Only for the debugger.
    98100 *
    99101 * @returns VBox status code.
     
    102104 * @retval  VERR_INVALID_POINTER if the pointer is not within the GC physical memory.
    103105 *
    104  * @param   pVM     The VM handle.
    105  * @param   HCPtr   The HC pointer to convert.
    106  * @param   pHCPhys Where to store the HC physical address on success.
    107  */
    108 VMMR3DECL(int) PGMR3DbgHCPtr2HCPhys(PVM pVM, RTHCPTR HCPtr, PRTHCPHYS pHCPhys)
     106 * @param   pVM         The VM handle.
     107 * @param   R3Ptr       The R3 pointer to convert.
     108 * @param   pHCPhys     Where to store the HC physical address on success.
     109 */
     110VMMR3DECL(int) PGMR3DbgR3Ptr2HCPhys(PVM pVM, RTR3PTR R3Ptr, PRTHCPHYS pHCPhys)
    109111{
    110112#ifdef VBOX_WITH_NEW_PHYS_CODE
     
    113115
    114116#else
    115     for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     117    for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    116118         pRam;
    117          pRam = CTXALLSUFF(pRam->pNext))
     119         pRam = pRam->CTX_SUFF(pNext))
    118120    {
    119121        if (pRam->fFlags & MM_RAM_FLAGS_DYNAMIC_ALLOC)
     
    121123            for (unsigned iChunk = 0; iChunk < (pRam->cb >> PGM_DYNAMIC_CHUNK_SHIFT); iChunk++)
    122124            {
    123                 if (CTXSUFF(pRam->pavHCChunk)[iChunk])
     125                if (pRam->pavHCChunkHC[iChunk])
    124126                {
    125                     RTHCUINTPTR off = (RTHCUINTPTR)HCPtr - (RTHCUINTPTR)CTXSUFF(pRam->pavHCChunk)[iChunk];
     127                    RTR3UINTPTR off = (RTR3UINTPTR)R3Ptr - (RTR3UINTPTR)pRam->pavHCChunkHC[iChunk];
    126128                    if (off < PGM_DYNAMIC_CHUNK_SIZE)
    127129                    {
     
    136138            }
    137139        }
    138         else if (pRam->pvHC)
    139         {
    140             RTHCUINTPTR off = (RTHCUINTPTR)HCPtr - (RTHCUINTPTR)pRam->pvHC;
     140        else if (pRam->pvR3)
     141        {
     142            RTR3UINTPTR off = (RTR3UINTPTR)R3Ptr - (RTR3UINTPTR)pRam->pvR3;
    141143            if (off < pRam->cb)
    142144            {
     
    180182        return VERR_INVALID_POINTER;
    181183
    182     for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     184    for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    183185         pRam;
    184          pRam = CTXALLSUFF(pRam->pNext))
     186         pRam = pRam->CTX_SUFF(pNext))
    185187    {
    186188        uint32_t iPage = pRam->cb >> PAGE_SHIFT;
     
    346348     * bother to match across ranges.
    347349     */
    348     for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     350    for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    349351         pRam;
    350          pRam = CTXALLSUFF(pRam->pNext))
     352         pRam = pRam->CTX_SUFF(pNext))
    351353    {
    352354        /*
  • trunk/src/VBox/VMM/PGMInternal.h

    r13019 r13035  
    222222#ifdef IN_GC
    223223# define PGM_HCPHYS_2_PTR(pVM, HCPhys, ppv) PGMGCDynMapHCPage(pVM, HCPhys, (void **)(ppv))
     224#elif defined(VBOX_WITH_2X_4GB_ADDR_SPACE)
     225# define PGM_HCPHYS_2_PTR(pVM, HCPhys, ppv) PGMR0DynMapHCPage(pVM, HCPhys, (void **)(ppv))
    224226#else
    225227# define PGM_HCPHYS_2_PTR(pVM, HCPhys, ppv) MMPagePhys2PageEx(pVM, HCPhys, (void **)(ppv))
     
    240242#ifdef IN_GC
    241243# define PGM_GCPHYS_2_PTR(pVM, GCPhys, ppv) PGMGCDynMapGCPage(pVM, GCPhys, (void **)(ppv))
     244#elif defined(VBOX_WITH_2X_4GB_ADDR_SPACE)
     245# define PGM_GCPHYS_2_PTR(pVM, GCPhys, ppv) PGMR0DynMapGCPage(pVM, GCPhys, (void **)(ppv))
    242246#else
    243247# define PGM_GCPHYS_2_PTR(pVM, GCPhys, ppv) PGMPhysGCPhys2HCPtr(pVM, GCPhys, 1 /* one page only */, (void **)(ppv)) /** @todo this isn't asserting, use PGMRamGCPhys2HCPtr! */
     
    258262#ifdef IN_GC
    259263# define PGM_GCPHYS_2_PTR_EX(pVM, GCPhys, ppv) PGMGCDynMapGCPageEx(pVM, GCPhys, (void **)(ppv))
     264#elif defined(VBOX_WITH_2X_4GB_ADDR_SPACE)
     265# define PGM_GCPHYS_2_PTR_EX(pVM, GCPhys, ppv) PGMR0DynMapGCPageEx(pVM, GCPhys, (void **)(ppv))
    260266#else
    261267# define PGM_GCPHYS_2_PTR_EX(pVM, GCPhys, ppv) PGMPhysGCPhys2HCPtr(pVM, GCPhys, 1 /* one page only */, (void **)(ppv)) /** @todo this isn't asserting, use PGMRamGCPhys2HCPtr! */
     
    917923    /** Pointer to the next RAM range - for R0. */
    918924    R0PTRTYPE(struct PGMRAMRANGE *)     pNextR0;
    919     /** Pointer to the next RAM range - for GC. */
    920     RCPTRTYPE(struct PGMRAMRANGE *)     pNextGC;
     925    /** Pointer to the next RAM range - for RC. */
     926    RCPTRTYPE(struct PGMRAMRANGE *)     pNextRC;
    921927    /** Pointer alignment. */
    922     RTRCPTR                             GCPtrAlignment;
     928    RTRCPTR                             RCPtrAlignment;
    923929    /** Start of the range. Page aligned. */
    924930    RTGCPHYS                            GCPhys;
     
    932938    uint32_t                            u32Alignment; /**< alignment. */
    933939#else
    934     /** HC virtual lookup ranges for chunks. Currently only used with MM_RAM_FLAGS_DYNAMIC_ALLOC ranges. */
     940    /** HC virtual lookup ranges for chunks - RC Ptr.
     941     * Currently only used with MM_RAM_FLAGS_DYNAMIC_ALLOC ranges. */
    935942    RCPTRTYPE(PRTHCPTR)                 pavHCChunkGC;
    936     /** HC virtual lookup ranges for chunks. Currently only used with MM_RAM_FLAGS_DYNAMIC_ALLOC ranges. */
     943    /** HC virtual lookup ranges for chunks - R3/R0 Ptr.
     944     * Currently only used with MM_RAM_FLAGS_DYNAMIC_ALLOC ranges. */
     945//# ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
     946//    R3PTRTYPE(PRTHCPTR)                 pavHCChunkHC;
     947//# else
    937948    R3R0PTRTYPE(PRTHCPTR)               pavHCChunkHC;
     949//# endif
    938950#endif
    939951    /** Start of the HC mapping of the range. This is only used for MMIO2. */
    940     R3PTRTYPE(void *)                   pvHC;
     952    R3PTRTYPE(void *)                   pvR3;
    941953    /** The range description. */
    942954    R3PTRTYPE(const char *)             pszDesc;
     
    958970#define PGMRAMRANGE_GETHCPTR(pRam, off) \
    959971    (pRam->fFlags & MM_RAM_FLAGS_DYNAMIC_ALLOC) ? (RTHCPTR)((RTHCUINTPTR)CTXSUFF(pRam->pavHCChunk)[(off >> PGM_DYNAMIC_CHUNK_SHIFT)] + (off & PGM_DYNAMIC_CHUNK_OFFSET_MASK))  \
    960                                                 : (RTHCPTR)((RTHCUINTPTR)pRam->pvHC + off);
     972                                                : (RTHCPTR)((RTR3UINTPTR)pRam->pvR3 + off);
    961973
    962974/**
     
    21452157    /** R0 pointer corresponding to PGM::pRamRangesR3. */
    21462158    R0PTRTYPE(PPGMRAMRANGE)         pRamRangesR0;
    2147     /** GC pointer corresponding to PGM::pRamRangesR3. */
    2148     RCPTRTYPE(PPGMRAMRANGE)         pRamRangesGC;
     2159    /** RC pointer corresponding to PGM::pRamRangesR3. */
     2160    RCPTRTYPE(PPGMRAMRANGE)         pRamRangesRC;
    21492161    /** The configured RAM size. */
    21502162    RTUINT                          cbRamSize;
     
    27192731     * Optimize for the first range.
    27202732     */
    2721     PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);
     2733    PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges);
    27222734    RTGCPHYS off = GCPhys - pRam->GCPhys;
    27232735    if (RT_UNLIKELY(off >= pRam->cb))
     
    27252737        do
    27262738        {
    2727             pRam = CTXALLSUFF(pRam->pNext);
     2739            pRam = pRam->CTX_SUFF(pNext);
    27282740            if (RT_UNLIKELY(!pRam))
    27292741                break;
     
    27492761     * Optimize for the first range.
    27502762     */
    2751     PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);
     2763    PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges);
    27522764    RTGCPHYS off = GCPhys - pRam->GCPhys;
    27532765    if (RT_UNLIKELY(off >= pRam->cb))
     
    27552767        do
    27562768        {
    2757             pRam = CTXALLSUFF(pRam->pNext);
     2769            pRam = pRam->CTX_SUFF(pNext);
    27582770            if (RT_UNLIKELY(!pRam))
    27592771                return NULL;
     
    27832795     * Optimize for the first range.
    27842796     */
    2785     PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);
     2797    PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges);
    27862798    RTGCPHYS off = GCPhys - pRam->GCPhys;
    27872799    if (RT_UNLIKELY(off >= pRam->cb))
     
    27892801        do
    27902802        {
    2791             pRam = CTXALLSUFF(pRam->pNext);
     2803            pRam = pRam->CTX_SUFF(pNext);
    27922804            if (RT_UNLIKELY(!pRam))
    27932805            {
     
    28482860        ||  RT_UNLIKELY((off = GCPhys - pRam->GCPhys) >= pRam->cb))
    28492861    {
    2850         pRam = CTXALLSUFF(pPGM->pRamRanges);
     2862        pRam = pPGM->CTX_SUFF(pRamRanges);
    28512863        off = GCPhys - pRam->GCPhys;
    28522864        if (RT_UNLIKELY(off >= pRam->cb))
     
    28542866            do
    28552867            {
    2856                 pRam = CTXALLSUFF(pRam->pNext);
     2868                pRam = pRam->CTX_SUFF(pNext);
    28572869                if (RT_UNLIKELY(!pRam))
    28582870                {
     
    29062918     * Optimize for the first range.
    29072919     */
    2908     PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);
     2920    PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges);
    29092921    RTGCPHYS off = GCPhys - pRam->GCPhys;
    29102922    if (RT_UNLIKELY(off >= pRam->cb))
     
    29122924        do
    29132925        {
    2914             pRam = CTXALLSUFF(pRam->pNext);
     2926            pRam = pRam->CTX_SUFF(pNext);
    29152927            if (RT_UNLIKELY(!pRam))
    29162928                return NULL;
     
    29412953     * Optimize for the first range.
    29422954     */
    2943     PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);
     2955    PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges);
    29442956    RTGCPHYS off = GCPhys - pRam->GCPhys;
    29452957    if (RT_UNLIKELY(off >= pRam->cb))
     
    29472959        do
    29482960        {
    2949             pRam = CTXALLSUFF(pRam->pNext);
     2961            pRam = pRam->CTX_SUFF(pNext);
    29502962            if (RT_UNLIKELY(!pRam))
    29512963            {
     
    30673079        return VINF_SUCCESS;
    30683080    }
    3069     if (pRam->pvHC)
     3081    if (pRam->pvR3)
    30703082    {
    3071         *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvHC + off);
     3083        *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvR3 + off); /** @todo @bugref{1865,3202}: Code is converting R3 pointer and maybe using it in R0! */
    30723084        return VINF_SUCCESS;
    30733085    }
     
    31143126        return VINF_SUCCESS;
    31153127    }
    3116     if (pRam->pvHC)
     3128    if (pRam->pvR3)
    31173129    {
    3118         *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvHC + off);
     3130        *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvR3 + off); /** @todo @bugref{1865,3202}: Code is converting R3 pointer and maybe using it in R0! */
    31193131        return VINF_SUCCESS;
    31203132    }
     
    31563168        return VINF_SUCCESS;
    31573169    }
    3158     if (pRam->pvHC)
     3170    if (pRam->pvR3)
    31593171    {
    3160         *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvHC + off);
     3172        *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvR3 + off); /** @todo @bugref{1865,3202}: Code is converting R3 pointer and maybe using it in R0! */
    31613173        return VINF_SUCCESS;
    31623174    }
  • trunk/src/VBox/VMM/PGMPhys.cpp

    r12989 r13035  
    9898    pNew->pNextR3 = pRam;
    9999    pNew->pNextR0 = pRam ? MMHyperCCToR0(pVM, pRam) : NIL_RTR0PTR;
    100     pNew->pNextGC = pRam ? MMHyperCCToRC(pVM, pRam) : NIL_RTGCPTR;
     100    pNew->pNextRC = pRam ? MMHyperCCToRC(pVM, pRam) : NIL_RTRCPTR;
    101101
    102102    if (pPrev)
     
    104104        pPrev->pNextR3 = pNew;
    105105        pPrev->pNextR0 = MMHyperCCToR0(pVM, pNew);
    106         pPrev->pNextGC = MMHyperCCToRC(pVM, pNew);
     106        pPrev->pNextRC = MMHyperCCToRC(pVM, pNew);
    107107    }
    108108    else
     
    110110        pVM->pgm.s.pRamRangesR3 = pNew;
    111111        pVM->pgm.s.pRamRangesR0 = MMHyperCCToR0(pVM, pNew);
    112         pVM->pgm.s.pRamRangesGC = MMHyperCCToRC(pVM, pNew);
     112        pVM->pgm.s.pRamRangesRC = MMHyperCCToRC(pVM, pNew);
    113113    }
    114114
     
    135135        pPrev->pNextR3 = pNext;
    136136        pPrev->pNextR0 = pNext ? MMHyperCCToR0(pVM, pNext) : NIL_RTR0PTR;
    137         pPrev->pNextGC = pNext ? MMHyperCCToRC(pVM, pNext) : NIL_RTGCPTR;
     137        pPrev->pNextRC = pNext ? MMHyperCCToRC(pVM, pNext) : NIL_RTRCPTR;
    138138    }
    139139    else
     
    142142        pVM->pgm.s.pRamRangesR3 = pNext;
    143143        pVM->pgm.s.pRamRangesR0 = pNext ? MMHyperCCToR0(pVM, pNext) : NIL_RTR0PTR;
    144         pVM->pgm.s.pRamRangesGC = pNext ? MMHyperCCToRC(pVM, pNext) : NIL_RTGCPTR;
     144        pVM->pgm.s.pRamRangesRC = pNext ? MMHyperCCToRC(pVM, pNext) : NIL_RTRCPTR;
    145145    }
    146146
     
    244244    pNew->fFlags        = 0;
    245245
    246     pNew->pvHC          = NULL;
     246    pNew->pvR3          = NULL;
    247247    pNew->pavHCChunkHC  = NULL;
    248248    pNew->pavHCChunkGC  = 0;
     
    343343                        }
    344344                        else
    345                             ASMMemZero32((char *)pRam->pvHC + (iPage << PAGE_SHIFT), PAGE_SIZE);
     345                            ASMMemZero32((char *)pRam->pvR3 + (iPage << PAGE_SHIFT), PAGE_SIZE);
    346346                        break;
    347347#else /* VBOX_WITH_NEW_PHYS_CODE */
     
    489489        pNew->fFlags        = 0; /* Some MMIO flag here? */
    490490
    491         pNew->pvHC          = NULL;
     491        pNew->pvR3          = NULL;
    492492        pNew->pavHCChunkHC  = NULL;
    493493        pNew->pavHCChunkGC  = 0;
     
    701701            //pNew->RamRange.fFlags = 0;
    702702
    703             pNew->RamRange.pvHC = pvPages;      ///@todo remove this
    704             pNew->RamRange.pavHCChunkHC = NULL; ///@todo remove this
    705             pNew->RamRange.pavHCChunkGC = 0;    ///@todo remove this
     703            pNew->RamRange.pvR3 = pvPages;      ///@todo remove this [new phys code]
     704            pNew->RamRange.pavHCChunkHC = NULL; ///@todo remove this [new phys code]
     705            pNew->RamRange.pavHCChunkGC = 0;    ///@todo remove this [new phys code]
    706706
    707707            uint32_t iPage = cPages;
     
    12531253                pRamNew->cb            = cb;
    12541254                pRamNew->fFlags        = 0;
    1255                 pRamNew->pvHC          = NULL;
     1255                pRamNew->pvR3          = NULL;
    12561256
    12571257                PPGMPAGE pPage = &pRamNew->aPages[0];
     
    13441344                    pRomNew->pNextR3 = pRom;
    13451345                    pRomNew->pNextR0 = pRom ? MMHyperCCToR0(pVM, pRom) : NIL_RTR0PTR;
    1346                     pRomNew->pNextGC = pRom ? MMHyperCCToRC(pVM, pRom) : NIL_RTGCPTR;
     1346                    pRomNew->pNextGC = pRom ? MMHyperCCToRC(pVM, pRom) : NIL_RTRCPTR;
    13471347
    13481348                    if (pRomPrev)
     
    17291729    size_t          cbRam = RT_OFFSETOF(PGMRAMRANGE, aPages[cb >> PAGE_SHIFT]);
    17301730    PPGMRAMRANGE    pNew;
    1731     RTGCPTR         GCPtrNew;
     1731    RTRCPTR         RCPtrNew;
    17321732    int             rc = VERR_NO_MEMORY;
    17331733    if (cbRam > PAGE_SIZE / 2)
     
    17371737        if (VBOX_SUCCESS(rc))
    17381738        {
     1739            RTGCPTR GCPtrNew;
    17391740            rc = MMR3HyperMapHCRam(pVM, pNew, cbRam, true,
    17401741                                   MMR3HeapAPrintf(pVM, MM_TAG_PGM_PHYS, "ram range (%s)", pszDesc),
     
    17421743            if (VBOX_SUCCESS(rc))
    17431744            {
    1744                 Assert(MMHyperHC2GC(pVM, pNew) == GCPtrNew);
     1745                RCPtrNew = GCPtrNew;
     1746                Assert(MMHyperR3ToRC(pVM, pNew) == GCPtrNew && RCPtrNew == GCPtrNew);
    17451747                rc = MMR3HyperReserve(pVM, PAGE_SIZE, "fence", NULL);
    17461748            }
     
    17601762        rc = MMHyperAlloc(pVM, cbRam, 16, MM_TAG_PGM, (void **)&pNew);
    17611763        if (VBOX_SUCCESS(rc))
    1762             GCPtrNew = MMHyperHC2GC(pVM, pNew);
     1764            RCPtrNew = MMHyperR3ToRC(pVM, pNew);
    17631765        else
    17641766            AssertMsgFailed(("MMHyperAlloc(,%#x,,,) -> %Vrc\n", cbRam, cb));
     
    17691771         * Initialize the range.
    17701772         */
    1771         pNew->pvHC          = pvRam;
     1773        pNew->pvR3          = pvRam;
    17721774        pNew->GCPhys        = GCPhys;
    17731775        pNew->GCPhysLast    = GCPhysLast;
     
    18211823        pNew->pNextR3 = pCur;
    18221824        pNew->pNextR0 = pCur ? MMHyperCCToR0(pVM, pCur) : NIL_RTR0PTR;
    1823         pNew->pNextGC = pCur ? MMHyperCCToRC(pVM, pCur) : NIL_RTGCPTR;
     1825        pNew->pNextRC = pCur ? MMHyperCCToRC(pVM, pCur) : NIL_RTRCPTR;
    18241826        if (pPrev)
    18251827        {
    18261828            pPrev->pNextR3 = pNew;
    18271829            pPrev->pNextR0 = MMHyperCCToR0(pVM, pNew);
    1828             pPrev->pNextGC = GCPtrNew;
     1830            pPrev->pNextRC = RCPtrNew;
    18291831        }
    18301832        else
     
    18321834            pVM->pgm.s.pRamRangesR3 = pNew;
    18331835            pVM->pgm.s.pRamRangesR0 = MMHyperCCToR0(pVM, pNew);
    1834             pVM->pgm.s.pRamRangesGC = GCPtrNew;
     1836            pVM->pgm.s.pRamRangesRC = RCPtrNew;
    18351837        }
    18361838        pgmUnlock(pVM);
     
    18881890     * Find existing range location.
    18891891     */
    1890     PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     1892    PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    18911893    while (pRam)
    18921894    {
     
    18961898            break;
    18971899
    1898         pRam = CTXALLSUFF(pRam->pNext);
     1900        pRam = pRam->CTX_SUFF(pNext);
    18991901    }
    19001902    AssertReturn(pRam, VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS);
     
    19331935    pgmLock(pVM);
    19341936
    1935     PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     1937    PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    19361938    while (pRam)
    19371939    {
     
    19531955        }
    19541956
    1955         pRam = CTXALLSUFF(pRam->pNext);
     1957        pRam = pRam->CTX_SUFF(pNext);
    19561958    }
    19571959    pgmUnlock(pVM);
     
    20682070     * Lookup the range.
    20692071     */
    2070     PPGMRAMRANGE    pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     2072    PPGMRAMRANGE    pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    20712073    while (pRam && GCPhys > pRam->GCPhysLast)
    2072         pRam = CTXALLSUFF(pRam->pNext);
     2074        pRam = pRam->CTX_SUFF(pNext);
    20732075    if (    !pRam
    20742076        ||  GCPhys > pRam->GCPhysLast
  • trunk/src/VBox/VMM/VBoxVMMDeps.cpp

    r8155 r13035  
    4949    (PFNRT)PDMCritSectEnter,
    5050    (PFNRT)PGMInvalidatePage,
    51     (PFNRT)PGMR3DbgHCPtr2GCPhys,
     51    (PFNRT)PGMR3DbgR3Ptr2GCPhys,
    5252    (PFNRT)VMR3Create,
    5353    (PFNRT)VMMDoTest,
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r13019 r13035  
    13031303     * Find the guest address.
    13041304     */
    1305     for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     1305    for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    13061306         pRam;
    1307          pRam = CTXALLSUFF(pRam->pNext))
     1307         pRam = pRam->CTX_SUFF(pNext))
    13081308    {
    13091309        unsigned iPage = pRam->cb >> PAGE_SHIFT;
     
    25682568                  GCPtrPage, PdeSrc.b.u1Present, PdeSrc.b.u1Write, PdeSrc.b.u1User, (uint64_t)PdeSrc.u, GCPtr,
    25692569                  GCPhys, PdeDst.u & PGM_PDFLAGS_TRACK_DIRTY ? " Track-Dirty" : ""));
    2570             PPGMRAMRANGE      pRam   = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     2570            PPGMRAMRANGE      pRam   = pVM->pgm.s.CTX_SUFF(pRamRanges);
    25712571            unsigned          iPTDst = 0;
    25722572            while (iPTDst < RT_ELEMENTS(pPTDst->a))
     
    25742574                /* Advance ram range list. */
    25752575                while (pRam && GCPhys > pRam->GCPhysLast)
    2576                     pRam = CTXALLSUFF(pRam->pNext);
     2576                    pRam = pRam->CTX_SUFF(pNext);
    25772577                if (pRam && GCPhys >= pRam->GCPhys)
    25782578                {
     
    36313631#  if PGM_GST_TYPE == PGM_TYPE_32BIT && defined(IN_RING3)
    36323632    RTGCPHYS GCPhys;
    3633     rc = PGMR3DbgHCPtr2GCPhys(pVM, pPGM->pGuestPDHC, &GCPhys);
     3633    rc = PGMR3DbgR3Ptr2GCPhys(pVM, pPGM->pGuestPDHC, &GCPhys);
    36343634    AssertRCReturn(rc, 1);
    36353635    AssertMsgReturn((cr3 & GST_CR3_PAGE_MASK) == GCPhys, ("GCPhys=%VGp cr3=%VGp\n", GCPhys, (RTGCPHYS)cr3), false);
  • trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp

    r12989 r13035  
    118118     * There is no apparent need to support ranges which cover more than one ram range.
    119119     */
    120     PPGMRAMRANGE    pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     120    PPGMRAMRANGE    pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    121121    while (pRam && GCPhys > pRam->GCPhysLast)
    122         pRam = CTXALLSUFF(pRam->pNext);
     122        pRam = pRam->CTX_SUFF(pNext);
    123123    if (    !pRam
    124124        ||  GCPhysLast < pRam->GCPhys
     
    511511             * There is no apparent need to support ranges which cover more than one ram range.
    512512             */
    513             PPGMRAMRANGE    pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     513            PPGMRAMRANGE    pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    514514            while (pRam && GCPhys > pRam->GCPhysLast)
    515                 pRam = CTXALLSUFF(pRam->pNext);
     515                pRam = pRam->CTX_SUFF(pNext);
    516516            if (    pRam
    517517                &&  GCPhys <= pRam->GCPhysLast
     
    13481348     * Check the RAM flags against the handlers.
    13491349     */
    1350     for (PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges); pRam; pRam = CTXALLSUFF(pRam->pNext))
     1350    for (PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges); pRam; pRam = pRam->CTX_SUFF(pNext))
    13511351    {
    13521352        const unsigned cPages = pRam->cb >> PAGE_SHIFT;
  • trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp

    r12989 r13035  
    575575     * 99.8% of requests are expected to be in the first range.
    576576     */
    577     PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);
     577    PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges);
    578578    RTGCPHYS off = GCPhys - pRam->GCPhys;
    579579    if (RT_UNLIKELY(off >= pRam->cb))
     
    581581        do
    582582        {
    583             pRam = CTXALLSUFF(pRam->pNext);
     583            pRam = pRam->CTX_SUFF(pNext);
    584584            if (!pRam)
    585585                return VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS;
     
    859859 * @param   pHCPtr  Where to store the HC pointer on success.
    860860 */
    861 VMMDECL(int) PGMPhysGCPhys2HCPtr(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange, PRTHCPTR pHCPtr)
     861VMMDECL(int) PGMPhysGCPhys2HCPtr(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange, PRTHCPTR pHCPtr) /** @todo @bugref{1865}: HCPtr -> R3Ptr */
    862862{
    863863#ifdef VBOX_WITH_NEW_PHYS_CODE
     
    895895        *pHCPtr = (RTHCPTR)((RTHCUINTPTR)CTXSUFF(pRam->pavHCChunk)[iChunk] + (off & PGM_DYNAMIC_CHUNK_OFFSET_MASK));
    896896    }
    897     else if (RT_LIKELY(pRam->pvHC))
    898         *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvHC + off);
     897    else if (RT_LIKELY(pRam->pvR3))
     898        *pHCPtr = (RTHCPTR)((RTR3UINTPTR)pRam->pvR3 + off);
    899899    else
    900900        return VERR_PGM_PHYS_PAGE_RESERVED;
     
    911911 * @param   cbRange     Physical range.
    912912 */
    913 VMMDECL(RTHCPTR) PGMPhysGCPhys2HCPtrAssert(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange)
     913VMMDECL(RTHCPTR) PGMPhysGCPhys2HCPtrAssert(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange) /** @todo @bugref{1865}: HCPtr -> R3Ptr */
    914914{
    915915    RTHCPTR HCPtr;
     
    970970 * @param   pHCPtr      Where to store the HC virtual address.
    971971 */
    972 VMMDECL(int) PGMPhysGCPtr2HCPtr(PVM pVM, RTGCPTR GCPtr, PRTHCPTR pHCPtr)
     972VMMDECL(int) PGMPhysGCPtr2HCPtr(PVM pVM, RTGCPTR GCPtr, PRTHCPTR pHCPtr) /** @todo @bugref{1865}: HCPtr -> R3Ptr */
    973973{
    974974#ifdef VBOX_WITH_NEW_PHYS_CODE
     
    998998 *          future DBGF API to cpu state independent conversions.
    999999 */
    1000 VMMDECL(int) PGMPhysGCPtr2HCPtrByGstCR3(PVM pVM, RTGCPTR GCPtr, uint64_t cr3, unsigned fFlags, PRTHCPTR pHCPtr)
     1000VMMDECL(int) PGMPhysGCPtr2HCPtrByGstCR3(PVM pVM, RTGCPTR GCPtr, uint64_t cr3, unsigned fFlags, PRTHCPTR pHCPtr) /** @todo @bugref{1865}: HCPtr -> R3Ptr */
    10011001{
    10021002#ifdef VBOX_WITH_NEW_PHYS_CODE
     
    11541154     * Copy loop on ram ranges.
    11551155     */
    1156     PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     1156    PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    11571157    for (;;)
    11581158    {
    11591159        /* Find range. */
    11601160        while (pRam && GCPhys > pRam->GCPhysLast)
    1161             pRam = CTXALLSUFF(pRam->pNext);
     1161            pRam = pRam->CTX_SUFF(pNext);
    11621162        /* Inside range or not? */
    11631163        if (pRam && GCPhys >= pRam->GCPhys)
     
    12141214                    if (rc == VINF_PGM_HANDLER_DO_DEFAULT)
    12151215                    {
    1216 #ifdef IN_GC
     1216#ifdef IN_GC /** @todo @bugref{3202}: R0 too */
    12171217                        void *pvSrc = NULL;
    12181218                        PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvSrc);
     
    12631263                    if (rc == VINF_PGM_HANDLER_DO_DEFAULT)
    12641264                    {
    1265 #ifdef IN_GC
     1265#ifdef IN_GC  /** @todo @bugref{3202}: R0 too */
    12661266                        void *pvSrc = NULL;
    12671267                        PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvSrc);
     
    12931293                        case MM_RAM_FLAGS_MMIO2: // MMIO2 isn't in the mask.
    12941294                        {
    1295 #ifdef IN_GC
     1295#ifdef IN_GC /** @todo @bugref{3202}: R0 too */
    12961296                            void *pvSrc = NULL;
    12971297                            PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvSrc);
     
    14151415     * Copy loop on ram ranges.
    14161416     */
    1417     PPGMRAMRANGE    pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     1417    PPGMRAMRANGE    pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    14181418    for (;;)
    14191419    {
    14201420        /* Find range. */
    14211421        while (pRam && GCPhys > pRam->GCPhysLast)
    1422             pRam = CTXALLSUFF(pRam->pNext);
     1422            pRam = pRam->CTX_SUFF(pNext);
    14231423        /* Inside range or not? */
    14241424        if (pRam && GCPhys >= pRam->GCPhys)
     
    15171517                        if (rc == VINF_PGM_HANDLER_DO_DEFAULT)
    15181518                        {
    1519 #ifdef IN_GC
     1519#ifdef IN_GC /** @todo @bugref{3202}: R0 too */
    15201520                            void *pvDst = NULL;
    15211521                            PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvDst);
     
    15621562                        if (rc == VINF_PGM_HANDLER_DO_DEFAULT)
    15631563                        {
    1564 #ifdef IN_GC
     1564#ifdef IN_GC /** @todo @bugref{3202}: R0 too */
    15651565                            void *pvDst = NULL;
    15661566                            PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvDst);
     
    16071607                    if (rc == VINF_PGM_HANDLER_DO_DEFAULT)
    16081608                    {
    1609 #ifdef IN_GC
     1609#ifdef IN_GC /** @todo @bugref{3202}: R0 too */
    16101610                        void *pvDst = NULL;
    16111611                        PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvDst);
     
    16361636                        case MM_RAM_FLAGS_ROM | MM_RAM_FLAGS_MMIO2: /* shadow rom */
    16371637                        {
    1638 #ifdef IN_GC
     1638#ifdef IN_GC /** @todo @bugref{3202}: R0 too */
    16391639                            void *pvDst = NULL;
    16401640                            PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvDst);
     
    17181718}
    17191719
    1720 #ifndef IN_GC /* Ring 0 & 3 only */
     1720#ifndef IN_GC /* Ring 0 & 3 only */  /** @todo @bugref{1865,3202}: this'll be fun! */
    17211721
    17221722/**
     
    17411741     * Loop ram ranges.
    17421742     */
    1743     for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     1743    for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    17441744         pRam;
    1745          pRam = CTXALLSUFF(pRam->pNext))
     1745         pRam = pRam->CTX_SUFF(pNext))
    17461746    {
    17471747        RTGCPHYS off = GCPhysSrc - pRam->GCPhys;
     
    17741774                }
    17751775            }
    1776             else if (pRam->pvHC)
     1776            else if (pRam->pvR3)
    17771777            {
    17781778                /* read */
     
    17801780                if (cbRead >= cb)
    17811781                {
    1782                     memcpy(pvDst, (uint8_t *)pRam->pvHC + off, cb);
     1782                    memcpy(pvDst, (uint8_t *)pRam->pvR3 + off, cb);
    17831783                    return VINF_SUCCESS;
    17841784                }
    1785                 memcpy(pvDst, (uint8_t *)pRam->pvHC + off, cbRead);
     1785                memcpy(pvDst, (uint8_t *)pRam->pvR3 + off, cbRead);
    17861786
    17871787                /* next */
     
    18251825     * Loop ram ranges.
    18261826     */
    1827     for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);
     1827    for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    18281828         pRam;
    1829          pRam = CTXALLSUFF(pRam->pNext))
     1829         pRam = pRam->CTX_SUFF(pNext))
    18301830    {
    18311831        RTGCPHYS off = GCPhysDst - pRam->GCPhys;
     
    18611861                }
    18621862            }
    1863             else if (pRam->pvHC)
     1863            else if (pRam->pvR3)
    18641864            {
    18651865                /* write */
     
    18671867                if (cbWrite >= cb)
    18681868                {
    1869                     memcpy((uint8_t *)pRam->pvHC + off, pvSrc, cb);
     1869                    memcpy((uint8_t *)pRam->pvR3 + off, pvSrc, cb);
    18701870                    return VINF_SUCCESS;
    18711871                }
    1872                 memcpy((uint8_t *)pRam->pvHC + off, pvSrc, cbWrite);
     1872                memcpy((uint8_t *)pRam->pvR3 + off, pvSrc, cbWrite);
    18731873
    18741874                /* next */
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r12936 r13035  
    19511951     * Clear all the GCPhys links and rebuild the phys ext free list.
    19521952     */
    1953     for (PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTXALLSUFF(pRamRanges);
     1953    for (PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges);
    19541954         pRam;
    1955          pRam = CTXALLSUFF(pRam->pNext))
     1955         pRam = pRam->CTX_SUFF(pNext))
    19561956    {
    19571957        unsigned iPage = pRam->cb >> PAGE_SHIFT;
     
    30283028     * Walk range list.
    30293029     */
    3030     PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTXALLSUFF(pRamRanges);
     3030    PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges);
    30313031    while (pRam)
    30323032    {
     
    30463046            break;
    30473047        }
    3048         pRam = CTXALLSUFF(pRam->pNext);
     3048        pRam = pRam->CTX_SUFF(pNext);
    30493049    }
    30503050    AssertFatalMsgFailed(("HCPhys=%VHp GCPhys=%VGp\n", HCPhys, GCPhys));
     
    30653065     * Walk range list.
    30663066     */
    3067     PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTXALLSUFF(pRamRanges);
     3067    PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges);
    30683068    while (pRam)
    30693069    {
     
    30813081            break;
    30823082        }
    3083         pRam = CTXALLSUFF(pRam->pNext);
     3083        pRam = pRam->CTX_SUFF(pNext);
    30843084    }
    30853085
     
    30883088     */
    30893089    STAM_COUNTER_INC(&pPool->StatTrackLinearRamSearches);
    3090     pRam = pPool->CTXSUFF(pVM)->pgm.s.CTXALLSUFF(pRamRanges);
     3090    pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges);
    30913091    while (pRam)
    30923092    {
     
    31023102            }
    31033103        }
    3104         pRam = CTXALLSUFF(pRam->pNext);
     3104        pRam = pRam->CTX_SUFF(pNext);
    31053105    }
    31063106
     
    36083608     * Clear all the GCPhys links and rebuild the phys ext free list.
    36093609     */
    3610     for (PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTXALLSUFF(pRamRanges);
     3610    for (PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges);
    36113611         pRam;
    3612          pRam = CTXALLSUFF(pRam->pNext))
     3612         pRam = pRam->CTX_SUFF(pNext))
    36133613    {
    36143614        unsigned iPage = pRam->cb >> PAGE_SHIFT;
  • trunk/src/VBox/VMM/VMMGC/PGMGC.cpp

    r12989 r13035  
    184184     * Get the ram range.
    185185     */
    186     PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesGC;
     186    PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesRC;
    187187    while (pRam && GCPhys - pRam->GCPhys >= pRam->cb)
    188         pRam = pRam->pNextGC;
     188        pRam = pRam->pNextRC;
    189189    if (!pRam)
    190190    {
     
    222222     * Get the ram range.
    223223     */
    224     PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesGC;
     224    PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesRC;
    225225    while (pRam && GCPhys - pRam->GCPhys >= pRam->cb)
    226         pRam = pRam->pNextGC;
     226        pRam = pRam->pNextRC;
    227227    if (!pRam)
    228228    {
  • trunk/src/VBox/VMM/VMMR0/PGMR0.cpp

    r12989 r13035  
    156156    return rc;
    157157}
     158
     159
     160#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
     161
     162/** darwin stub */
     163VMMR0DECL(int) PGMR0DynMapGCPage(PVM pVM, RTGCPHYS GCPhys, void **ppv)
     164{
     165    Assert(!(GCPhys & PAGE_OFFSET));
     166    return VERR_NOT_IMPLEMENTED;
     167}
     168
     169/** darwin stub */
     170VMMR0DECL(int) PGMR0DynMapGCPageEx(PVM pVM, RTGCPHYS GCPhys, void **ppv)
     171{
     172    return VERR_NOT_IMPLEMENTED;
     173}
     174
     175/** darwin stub */
     176VMMR0DECL(int) PGMR0DynMapHCPage(PVM pVM, RTHCPHYS HCPhys, void **ppv)
     177{
     178    return VERR_NOT_IMPLEMENTED;
     179}
     180
     181#endif /* VBOX_WITH_2X_4GB_ADDR_SPACE */
     182
  • trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp

    r13020 r13035  
    449449    GEN_CHECK_OFF(PGM, pRamRangesR3);
    450450    GEN_CHECK_OFF(PGM, pRamRangesR0);
    451     GEN_CHECK_OFF(PGM, pRamRangesGC);
     451    GEN_CHECK_OFF(PGM, pRamRangesRC);
    452452    GEN_CHECK_OFF(PGM, pRomRangesR3);
    453453    GEN_CHECK_OFF(PGM, pRomRangesR0);
     
    568568    GEN_CHECK_OFF(PGMRAMRANGE, pNextR3);
    569569    GEN_CHECK_OFF(PGMRAMRANGE, pNextR0);
    570     GEN_CHECK_OFF(PGMRAMRANGE, pNextGC);
     570    GEN_CHECK_OFF(PGMRAMRANGE, pNextRC);
    571571    GEN_CHECK_OFF(PGMRAMRANGE, GCPhys);
    572572    GEN_CHECK_OFF(PGMRAMRANGE, GCPhysLast);
    573573    GEN_CHECK_OFF(PGMRAMRANGE, cb);
    574574    GEN_CHECK_OFF(PGMRAMRANGE, fFlags);
    575     GEN_CHECK_OFF(PGMRAMRANGE, pvHC);
     575    GEN_CHECK_OFF(PGMRAMRANGE, pvR3);
    576576    GEN_CHECK_OFF(PGMRAMRANGE, pszDesc);
    577577    GEN_CHECK_OFF(PGMRAMRANGE, aPages);
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