Changeset 13035 in vbox
- Timestamp:
- Oct 7, 2008 9:54:32 AM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 37476
- Location:
- trunk
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/pgm.h
r13005 r13035 459 459 VMMR0DECL(int) PGMR0PhysAllocateHandyPages(PVM pVM); 460 460 VMMR0DECL(int) PGMR0Trap0eHandlerNestedPaging(PVM pVM, PGMMODE enmShwPagingMode, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPHYS pvFault); 461 # ifdef VBOX_WITH_2X_4GB_ADDR_SPACE 462 VMMR0DECL(int) PGMR0DynMapGCPage(PVM pVM, RTGCPHYS GCPhys, void **ppv); 463 VMMR0DECL(int) PGMR0DynMapGCPageEx(PVM pVM, RTGCPHYS GCPhys, void **ppv); 464 VMMR0DECL(int) PGMR0DynMapHCPage(PVM pVM, RTHCPHYS HCPhys, void **ppv); 465 # endif 461 466 /** @} */ 462 467 #endif /* IN_RING0 */ … … 556 561 VMMR3DECL(int) PGMR3CheckIntegrity(PVM pVM); 557 562 558 VMMR3DECL(int) PGMR3Dbg HCPtr2GCPhys(PVM pVM, RTHCPTR HCPtr, PRTGCPHYS pGCPhys);559 VMMR3DECL(int) PGMR3Dbg HCPtr2HCPhys(PVM pVM, RTHCPTR HCPtr, PRTHCPHYS pHCPhys);563 VMMR3DECL(int) PGMR3DbgR3Ptr2GCPhys(PVM pVM, RTR3PTR R3Ptr, PRTGCPHYS pGCPhys); 564 VMMR3DECL(int) PGMR3DbgR3Ptr2HCPhys(PVM pVM, RTR3PTR R3Ptr, PRTHCPHYS pHCPhys); 560 565 VMMR3DECL(int) PGMR3DbgHCPhys2GCPhys(PVM pVM, RTHCPHYS HCPhys, PRTGCPHYS pGCPhys); 561 566 VMMR3DECL(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 41 41 VMMR3_DEFS += VBOX_WITH_PREALLOC_RAM_BY_DEFAULT 42 42 endif 43 VMMR3_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE 43 44 VMMR3_INCS := \ 44 45 $(PATH_SUB_CURRENT) \ … … 175 176 VBoxVMM_TEMPLATE = VBOXR3 176 177 VBoxVMM_DEFS = $(VMMR3_DEFS) 178 VBoxVMM_DEFS.$(KBUILD_TARGET) = $(VMMR3_DEFS.$(KBUILD_TARGET)) 177 179 VBoxVMM_SOURCES = VBoxVMMDeps.cpp 178 180 VBoxVMM_SONAME.linux = VBoxVMM.so … … 268 270 VMMGC_DEFS += VBOX_WITH_IDT_PATCHING 269 271 endif 272 VMMGC_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE 270 273 VMMGC_SYSSUFF = .gc 271 274 VMMGC_LIBS = \ … … 354 357 VMMR0_DEFS += VBOX_WITH_IDT_PATCHING 355 358 endif 359 VMMR0_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE 356 360 ifeq ($(VBOX_LDR_FMT),pe) 357 361 VMMR0_LDFLAGS = -Entry:VMMR0EntryEx -
trunk/src/VBox/VMM/PGM.cpp
r13019 r13035 1871 1871 if (pVM->pgm.s.pRamRangesR3) 1872 1872 { 1873 pVM->pgm.s.pRamRanges GC = MMHyperHC2GC(pVM, pVM->pgm.s.pRamRangesR3);1873 pVM->pgm.s.pRamRangesRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pRamRangesR3); 1874 1874 for (PPGMRAMRANGE pCur = pVM->pgm.s.pRamRangesR3; pCur->pNextR3; pCur = pCur->pNextR3) 1875 1875 #ifdef VBOX_WITH_NEW_PHYS_CODE 1876 pCur->pNext GC = MMHyperR3ToRC(pVM, pCur->pNextR3);1876 pCur->pNextRC = MMHyperR3ToRC(pVM, pCur->pNextR3); 1877 1877 #else 1878 1878 { 1879 pCur->pNext GC = MMHyperR3ToRC(pVM, pCur->pNextR3);1879 pCur->pNextRC = MMHyperR3ToRC(pVM, pCur->pNextR3); 1880 1880 if (pCur->pavHCChunkGC) 1881 1881 pCur->pavHCChunkGC = MMHyperHC2GC(pVM, pCur->pavHCChunkHC); … … 2146 2146 SSMR3PutGCPhys(pSSM, pRam->GCPhysLast); 2147 2147 SSMR3PutGCPhys(pSSM, pRam->cb); 2148 SSMR3PutU8(pSSM, !!pRam->pv HC); /* boolean indicating memory or not. */2148 SSMR3PutU8(pSSM, !!pRam->pvR3); /* boolean indicating memory or not. */ 2149 2149 2150 2150 /* Flags. */ … … 2167 2167 } 2168 2168 } 2169 else if (pRam->pv HC)2169 else if (pRam->pvR3) 2170 2170 { 2171 int rc = SSMR3PutMem(pSSM, pRam->pv HC, pRam->cb);2171 int rc = SSMR3PutMem(pSSM, pRam->pvR3, pRam->cb); 2172 2172 if (VBOX_FAILURE(rc)) 2173 2173 { 2174 Log(("pgmR3Save: SSMR3PutMem(, %p, %#x) -> %Vrc\n", pRam->pv HC, pRam->cb, rc));2174 Log(("pgmR3Save: SSMR3PutMem(, %p, %#x) -> %Vrc\n", pRam->pvR3, pRam->cb, rc)); 2175 2175 return rc; 2176 2176 } … … 2341 2341 || GCPhysLast != pRam->GCPhysLast 2342 2342 || cb != pRam->cb 2343 || fHaveBits != !!pRam->pv HC)2343 || fHaveBits != !!pRam->pvR3) 2344 2344 { 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->pv HC? "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", 2348 2348 GCPhys, GCPhysLast, cb, fHaveBits ? "bits" : "nobits")); 2349 2349 /* … … 2404 2404 } 2405 2405 } 2406 else if (pRam->pv HC)2406 else if (pRam->pvR3) 2407 2407 { 2408 int rc = SSMR3GetMem(pSSM, pRam->pv HC, pRam->cb);2408 int rc = SSMR3GetMem(pSSM, pRam->pvR3, pRam->cb); 2409 2409 if (VBOX_FAILURE(rc)) 2410 2410 { 2411 Log(("pgmR3Save: SSMR3GetMem(, %p, %#x) -> %Vrc\n", pRam->pv HC, pRam->cb, rc));2411 Log(("pgmR3Save: SSMR3GetMem(, %p, %#x) -> %Vrc\n", pRam->pvR3, pRam->cb, rc)); 2412 2412 return rc; 2413 2413 } … … 2523 2523 pCur->GCPhys, 2524 2524 pCur->GCPhysLast, 2525 pCur->pv HC,2525 pCur->pvR3, 2526 2526 pCur->pszDesc); 2527 2527 } … … 4054 4054 if (!pVM) 4055 4055 return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "error: The command requires a VM to be selected.\n"); 4056 if (!pVM->pgm.s.pRamRanges GC)4056 if (!pVM->pgm.s.pRamRangesRC) 4057 4057 return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "Sorry, no Ram is registered.\n"); 4058 4058 … … 4065 4065 { 4066 4066 rc = pCmdHlp->pfnPrintf(pCmdHlp, NULL, 4067 "% VGp - %VGp %p\n",4068 pRam->GCPhys, pRam->GCPhysLast, pRam->pv HC);4067 "%RGp - %RGp %p\n", 4068 pRam->GCPhys, pRam->GCPhysLast, pRam->pvR3); 4069 4069 if (VBOX_FAILURE(rc)) 4070 4070 return rc; -
trunk/src/VBox/VMM/PGMDbg.cpp
r12989 r13035 41 41 42 42 /** 43 * Converts a HCpointer to a GC physical address.43 * Converts a R3 pointer to a GC physical address. 44 44 * 45 45 * Only for the debugger. … … 49 49 * @retval VERR_INVALID_POINTER if the pointer is not within the GC physical memory. 50 50 * 51 * @param pVM The VM handle.52 * @param HCPtr The HCpointer to convert.53 * @param pGCPhys Where to store the GC physical address on success.54 */ 55 VMMR3DECL(int) PGMR3Dbg HCPtr2GCPhys(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 */ 55 VMMR3DECL(int) PGMR3DbgR3Ptr2GCPhys(PVM pVM, RTR3PTR R3Ptr, PRTGCPHYS pGCPhys) 56 56 { 57 57 #ifdef VBOX_WITH_NEW_PHYS_CODE … … 60 60 61 61 #else 62 for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);62 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 63 63 pRam; 64 pRam = CTXALLSUFF(pRam->pNext))64 pRam = pRam->CTX_SUFF(pNext)) 65 65 { 66 66 if (pRam->fFlags & MM_RAM_FLAGS_DYNAMIC_ALLOC) … … 68 68 for (unsigned iChunk = 0; iChunk < (pRam->cb >> PGM_DYNAMIC_CHUNK_SHIFT); iChunk++) 69 69 { 70 if ( CTXSUFF(pRam->pavHCChunk)[iChunk])70 if (pRam->pavHCChunkHC[iChunk]) 71 71 { 72 RT HCUINTPTR off = (RTHCUINTPTR)HCPtr - (RTHCUINTPTR)CTXSUFF(pRam->pavHCChunk)[iChunk];72 RTR3UINTPTR off = (RTR3UINTPTR)R3Ptr - (RTR3UINTPTR)pRam->pavHCChunkHC[iChunk]; 73 73 if (off < PGM_DYNAMIC_CHUNK_SIZE) 74 74 { … … 79 79 } 80 80 } 81 else if (pRam->pv HC)82 { 83 RT HCUINTPTR off = (RTHCUINTPTR)HCPtr - (RTHCUINTPTR)pRam->pvHC;81 else if (pRam->pvR3) 82 { 83 RTR3UINTPTR off = (RTR3UINTPTR)R3Ptr - (RTR3UINTPTR)pRam->pvR3; 84 84 if (off < pRam->cb) 85 85 { … … 95 95 96 96 /** 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. 98 100 * 99 101 * @returns VBox status code. … … 102 104 * @retval VERR_INVALID_POINTER if the pointer is not within the GC physical memory. 103 105 * 104 * @param pVM The VM handle.105 * @param HCPtr The HCpointer to convert.106 * @param pHCPhys Where to store the HC physical address on success.107 */ 108 VMMR3DECL(int) PGMR3Dbg HCPtr2HCPhys(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 */ 110 VMMR3DECL(int) PGMR3DbgR3Ptr2HCPhys(PVM pVM, RTR3PTR R3Ptr, PRTHCPHYS pHCPhys) 109 111 { 110 112 #ifdef VBOX_WITH_NEW_PHYS_CODE … … 113 115 114 116 #else 115 for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);117 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 116 118 pRam; 117 pRam = CTXALLSUFF(pRam->pNext))119 pRam = pRam->CTX_SUFF(pNext)) 118 120 { 119 121 if (pRam->fFlags & MM_RAM_FLAGS_DYNAMIC_ALLOC) … … 121 123 for (unsigned iChunk = 0; iChunk < (pRam->cb >> PGM_DYNAMIC_CHUNK_SHIFT); iChunk++) 122 124 { 123 if ( CTXSUFF(pRam->pavHCChunk)[iChunk])125 if (pRam->pavHCChunkHC[iChunk]) 124 126 { 125 RT HCUINTPTR off = (RTHCUINTPTR)HCPtr - (RTHCUINTPTR)CTXSUFF(pRam->pavHCChunk)[iChunk];127 RTR3UINTPTR off = (RTR3UINTPTR)R3Ptr - (RTR3UINTPTR)pRam->pavHCChunkHC[iChunk]; 126 128 if (off < PGM_DYNAMIC_CHUNK_SIZE) 127 129 { … … 136 138 } 137 139 } 138 else if (pRam->pv HC)139 { 140 RT HCUINTPTR off = (RTHCUINTPTR)HCPtr - (RTHCUINTPTR)pRam->pvHC;140 else if (pRam->pvR3) 141 { 142 RTR3UINTPTR off = (RTR3UINTPTR)R3Ptr - (RTR3UINTPTR)pRam->pvR3; 141 143 if (off < pRam->cb) 142 144 { … … 180 182 return VERR_INVALID_POINTER; 181 183 182 for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);184 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 183 185 pRam; 184 pRam = CTXALLSUFF(pRam->pNext))186 pRam = pRam->CTX_SUFF(pNext)) 185 187 { 186 188 uint32_t iPage = pRam->cb >> PAGE_SHIFT; … … 346 348 * bother to match across ranges. 347 349 */ 348 for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);350 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 349 351 pRam; 350 pRam = CTXALLSUFF(pRam->pNext))352 pRam = pRam->CTX_SUFF(pNext)) 351 353 { 352 354 /* -
trunk/src/VBox/VMM/PGMInternal.h
r13019 r13035 222 222 #ifdef IN_GC 223 223 # 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)) 224 226 #else 225 227 # define PGM_HCPHYS_2_PTR(pVM, HCPhys, ppv) MMPagePhys2PageEx(pVM, HCPhys, (void **)(ppv)) … … 240 242 #ifdef IN_GC 241 243 # 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)) 242 246 #else 243 247 # define PGM_GCPHYS_2_PTR(pVM, GCPhys, ppv) PGMPhysGCPhys2HCPtr(pVM, GCPhys, 1 /* one page only */, (void **)(ppv)) /** @todo this isn't asserting, use PGMRamGCPhys2HCPtr! */ … … 258 262 #ifdef IN_GC 259 263 # 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)) 260 266 #else 261 267 # 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! */ … … 917 923 /** Pointer to the next RAM range - for R0. */ 918 924 R0PTRTYPE(struct PGMRAMRANGE *) pNextR0; 919 /** Pointer to the next RAM range - for GC. */920 RCPTRTYPE(struct PGMRAMRANGE *) pNext GC;925 /** Pointer to the next RAM range - for RC. */ 926 RCPTRTYPE(struct PGMRAMRANGE *) pNextRC; 921 927 /** Pointer alignment. */ 922 RTRCPTR GCPtrAlignment;928 RTRCPTR RCPtrAlignment; 923 929 /** Start of the range. Page aligned. */ 924 930 RTGCPHYS GCPhys; … … 932 938 uint32_t u32Alignment; /**< alignment. */ 933 939 #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. */ 935 942 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 937 948 R3R0PTRTYPE(PRTHCPTR) pavHCChunkHC; 949 //# endif 938 950 #endif 939 951 /** Start of the HC mapping of the range. This is only used for MMIO2. */ 940 R3PTRTYPE(void *) pv HC;952 R3PTRTYPE(void *) pvR3; 941 953 /** The range description. */ 942 954 R3PTRTYPE(const char *) pszDesc; … … 958 970 #define PGMRAMRANGE_GETHCPTR(pRam, off) \ 959 971 (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)((RT HCUINTPTR)pRam->pvHC+ off);972 : (RTHCPTR)((RTR3UINTPTR)pRam->pvR3 + off); 961 973 962 974 /** … … 2145 2157 /** R0 pointer corresponding to PGM::pRamRangesR3. */ 2146 2158 R0PTRTYPE(PPGMRAMRANGE) pRamRangesR0; 2147 /** GC pointer corresponding to PGM::pRamRangesR3. */2148 RCPTRTYPE(PPGMRAMRANGE) pRamRanges GC;2159 /** RC pointer corresponding to PGM::pRamRangesR3. */ 2160 RCPTRTYPE(PPGMRAMRANGE) pRamRangesRC; 2149 2161 /** The configured RAM size. */ 2150 2162 RTUINT cbRamSize; … … 2719 2731 * Optimize for the first range. 2720 2732 */ 2721 PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);2733 PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges); 2722 2734 RTGCPHYS off = GCPhys - pRam->GCPhys; 2723 2735 if (RT_UNLIKELY(off >= pRam->cb)) … … 2725 2737 do 2726 2738 { 2727 pRam = CTXALLSUFF(pRam->pNext);2739 pRam = pRam->CTX_SUFF(pNext); 2728 2740 if (RT_UNLIKELY(!pRam)) 2729 2741 break; … … 2749 2761 * Optimize for the first range. 2750 2762 */ 2751 PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);2763 PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges); 2752 2764 RTGCPHYS off = GCPhys - pRam->GCPhys; 2753 2765 if (RT_UNLIKELY(off >= pRam->cb)) … … 2755 2767 do 2756 2768 { 2757 pRam = CTXALLSUFF(pRam->pNext);2769 pRam = pRam->CTX_SUFF(pNext); 2758 2770 if (RT_UNLIKELY(!pRam)) 2759 2771 return NULL; … … 2783 2795 * Optimize for the first range. 2784 2796 */ 2785 PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);2797 PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges); 2786 2798 RTGCPHYS off = GCPhys - pRam->GCPhys; 2787 2799 if (RT_UNLIKELY(off >= pRam->cb)) … … 2789 2801 do 2790 2802 { 2791 pRam = CTXALLSUFF(pRam->pNext);2803 pRam = pRam->CTX_SUFF(pNext); 2792 2804 if (RT_UNLIKELY(!pRam)) 2793 2805 { … … 2848 2860 || RT_UNLIKELY((off = GCPhys - pRam->GCPhys) >= pRam->cb)) 2849 2861 { 2850 pRam = CTXALLSUFF(pPGM->pRamRanges);2862 pRam = pPGM->CTX_SUFF(pRamRanges); 2851 2863 off = GCPhys - pRam->GCPhys; 2852 2864 if (RT_UNLIKELY(off >= pRam->cb)) … … 2854 2866 do 2855 2867 { 2856 pRam = CTXALLSUFF(pRam->pNext);2868 pRam = pRam->CTX_SUFF(pNext); 2857 2869 if (RT_UNLIKELY(!pRam)) 2858 2870 { … … 2906 2918 * Optimize for the first range. 2907 2919 */ 2908 PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);2920 PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges); 2909 2921 RTGCPHYS off = GCPhys - pRam->GCPhys; 2910 2922 if (RT_UNLIKELY(off >= pRam->cb)) … … 2912 2924 do 2913 2925 { 2914 pRam = CTXALLSUFF(pRam->pNext);2926 pRam = pRam->CTX_SUFF(pNext); 2915 2927 if (RT_UNLIKELY(!pRam)) 2916 2928 return NULL; … … 2941 2953 * Optimize for the first range. 2942 2954 */ 2943 PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);2955 PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges); 2944 2956 RTGCPHYS off = GCPhys - pRam->GCPhys; 2945 2957 if (RT_UNLIKELY(off >= pRam->cb)) … … 2947 2959 do 2948 2960 { 2949 pRam = CTXALLSUFF(pRam->pNext);2961 pRam = pRam->CTX_SUFF(pNext); 2950 2962 if (RT_UNLIKELY(!pRam)) 2951 2963 { … … 3067 3079 return VINF_SUCCESS; 3068 3080 } 3069 if (pRam->pv HC)3081 if (pRam->pvR3) 3070 3082 { 3071 *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pv HC + off);3083 *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvR3 + off); /** @todo @bugref{1865,3202}: Code is converting R3 pointer and maybe using it in R0! */ 3072 3084 return VINF_SUCCESS; 3073 3085 } … … 3114 3126 return VINF_SUCCESS; 3115 3127 } 3116 if (pRam->pv HC)3128 if (pRam->pvR3) 3117 3129 { 3118 *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pv HC + off);3130 *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvR3 + off); /** @todo @bugref{1865,3202}: Code is converting R3 pointer and maybe using it in R0! */ 3119 3131 return VINF_SUCCESS; 3120 3132 } … … 3156 3168 return VINF_SUCCESS; 3157 3169 } 3158 if (pRam->pv HC)3170 if (pRam->pvR3) 3159 3171 { 3160 *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pv HC + off);3172 *pHCPtr = (RTHCPTR)((RTHCUINTPTR)pRam->pvR3 + off); /** @todo @bugref{1865,3202}: Code is converting R3 pointer and maybe using it in R0! */ 3161 3173 return VINF_SUCCESS; 3162 3174 } -
trunk/src/VBox/VMM/PGMPhys.cpp
r12989 r13035 98 98 pNew->pNextR3 = pRam; 99 99 pNew->pNextR0 = pRam ? MMHyperCCToR0(pVM, pRam) : NIL_RTR0PTR; 100 pNew->pNext GC = pRam ? MMHyperCCToRC(pVM, pRam) : NIL_RTGCPTR;100 pNew->pNextRC = pRam ? MMHyperCCToRC(pVM, pRam) : NIL_RTRCPTR; 101 101 102 102 if (pPrev) … … 104 104 pPrev->pNextR3 = pNew; 105 105 pPrev->pNextR0 = MMHyperCCToR0(pVM, pNew); 106 pPrev->pNext GC = MMHyperCCToRC(pVM, pNew);106 pPrev->pNextRC = MMHyperCCToRC(pVM, pNew); 107 107 } 108 108 else … … 110 110 pVM->pgm.s.pRamRangesR3 = pNew; 111 111 pVM->pgm.s.pRamRangesR0 = MMHyperCCToR0(pVM, pNew); 112 pVM->pgm.s.pRamRanges GC = MMHyperCCToRC(pVM, pNew);112 pVM->pgm.s.pRamRangesRC = MMHyperCCToRC(pVM, pNew); 113 113 } 114 114 … … 135 135 pPrev->pNextR3 = pNext; 136 136 pPrev->pNextR0 = pNext ? MMHyperCCToR0(pVM, pNext) : NIL_RTR0PTR; 137 pPrev->pNext GC = pNext ? MMHyperCCToRC(pVM, pNext) : NIL_RTGCPTR;137 pPrev->pNextRC = pNext ? MMHyperCCToRC(pVM, pNext) : NIL_RTRCPTR; 138 138 } 139 139 else … … 142 142 pVM->pgm.s.pRamRangesR3 = pNext; 143 143 pVM->pgm.s.pRamRangesR0 = pNext ? MMHyperCCToR0(pVM, pNext) : NIL_RTR0PTR; 144 pVM->pgm.s.pRamRanges GC = pNext ? MMHyperCCToRC(pVM, pNext) : NIL_RTGCPTR;144 pVM->pgm.s.pRamRangesRC = pNext ? MMHyperCCToRC(pVM, pNext) : NIL_RTRCPTR; 145 145 } 146 146 … … 244 244 pNew->fFlags = 0; 245 245 246 pNew->pv HC= NULL;246 pNew->pvR3 = NULL; 247 247 pNew->pavHCChunkHC = NULL; 248 248 pNew->pavHCChunkGC = 0; … … 343 343 } 344 344 else 345 ASMMemZero32((char *)pRam->pv HC+ (iPage << PAGE_SHIFT), PAGE_SIZE);345 ASMMemZero32((char *)pRam->pvR3 + (iPage << PAGE_SHIFT), PAGE_SIZE); 346 346 break; 347 347 #else /* VBOX_WITH_NEW_PHYS_CODE */ … … 489 489 pNew->fFlags = 0; /* Some MMIO flag here? */ 490 490 491 pNew->pv HC= NULL;491 pNew->pvR3 = NULL; 492 492 pNew->pavHCChunkHC = NULL; 493 493 pNew->pavHCChunkGC = 0; … … 701 701 //pNew->RamRange.fFlags = 0; 702 702 703 pNew->RamRange.pv HC = pvPages; ///@todo remove this704 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] 706 706 707 707 uint32_t iPage = cPages; … … 1253 1253 pRamNew->cb = cb; 1254 1254 pRamNew->fFlags = 0; 1255 pRamNew->pv HC= NULL;1255 pRamNew->pvR3 = NULL; 1256 1256 1257 1257 PPGMPAGE pPage = &pRamNew->aPages[0]; … … 1344 1344 pRomNew->pNextR3 = pRom; 1345 1345 pRomNew->pNextR0 = pRom ? MMHyperCCToR0(pVM, pRom) : NIL_RTR0PTR; 1346 pRomNew->pNextGC = pRom ? MMHyperCCToRC(pVM, pRom) : NIL_RT GCPTR;1346 pRomNew->pNextGC = pRom ? MMHyperCCToRC(pVM, pRom) : NIL_RTRCPTR; 1347 1347 1348 1348 if (pRomPrev) … … 1729 1729 size_t cbRam = RT_OFFSETOF(PGMRAMRANGE, aPages[cb >> PAGE_SHIFT]); 1730 1730 PPGMRAMRANGE pNew; 1731 RT GCPTR GCPtrNew;1731 RTRCPTR RCPtrNew; 1732 1732 int rc = VERR_NO_MEMORY; 1733 1733 if (cbRam > PAGE_SIZE / 2) … … 1737 1737 if (VBOX_SUCCESS(rc)) 1738 1738 { 1739 RTGCPTR GCPtrNew; 1739 1740 rc = MMR3HyperMapHCRam(pVM, pNew, cbRam, true, 1740 1741 MMR3HeapAPrintf(pVM, MM_TAG_PGM_PHYS, "ram range (%s)", pszDesc), … … 1742 1743 if (VBOX_SUCCESS(rc)) 1743 1744 { 1744 Assert(MMHyperHC2GC(pVM, pNew) == GCPtrNew); 1745 RCPtrNew = GCPtrNew; 1746 Assert(MMHyperR3ToRC(pVM, pNew) == GCPtrNew && RCPtrNew == GCPtrNew); 1745 1747 rc = MMR3HyperReserve(pVM, PAGE_SIZE, "fence", NULL); 1746 1748 } … … 1760 1762 rc = MMHyperAlloc(pVM, cbRam, 16, MM_TAG_PGM, (void **)&pNew); 1761 1763 if (VBOX_SUCCESS(rc)) 1762 GCPtrNew = MMHyperHC2GC(pVM, pNew);1764 RCPtrNew = MMHyperR3ToRC(pVM, pNew); 1763 1765 else 1764 1766 AssertMsgFailed(("MMHyperAlloc(,%#x,,,) -> %Vrc\n", cbRam, cb)); … … 1769 1771 * Initialize the range. 1770 1772 */ 1771 pNew->pv HC= pvRam;1773 pNew->pvR3 = pvRam; 1772 1774 pNew->GCPhys = GCPhys; 1773 1775 pNew->GCPhysLast = GCPhysLast; … … 1821 1823 pNew->pNextR3 = pCur; 1822 1824 pNew->pNextR0 = pCur ? MMHyperCCToR0(pVM, pCur) : NIL_RTR0PTR; 1823 pNew->pNext GC = pCur ? MMHyperCCToRC(pVM, pCur) : NIL_RTGCPTR;1825 pNew->pNextRC = pCur ? MMHyperCCToRC(pVM, pCur) : NIL_RTRCPTR; 1824 1826 if (pPrev) 1825 1827 { 1826 1828 pPrev->pNextR3 = pNew; 1827 1829 pPrev->pNextR0 = MMHyperCCToR0(pVM, pNew); 1828 pPrev->pNext GC = GCPtrNew;1830 pPrev->pNextRC = RCPtrNew; 1829 1831 } 1830 1832 else … … 1832 1834 pVM->pgm.s.pRamRangesR3 = pNew; 1833 1835 pVM->pgm.s.pRamRangesR0 = MMHyperCCToR0(pVM, pNew); 1834 pVM->pgm.s.pRamRanges GC = GCPtrNew;1836 pVM->pgm.s.pRamRangesRC = RCPtrNew; 1835 1837 } 1836 1838 pgmUnlock(pVM); … … 1888 1890 * Find existing range location. 1889 1891 */ 1890 PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);1892 PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 1891 1893 while (pRam) 1892 1894 { … … 1896 1898 break; 1897 1899 1898 pRam = CTXALLSUFF(pRam->pNext);1900 pRam = pRam->CTX_SUFF(pNext); 1899 1901 } 1900 1902 AssertReturn(pRam, VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS); … … 1933 1935 pgmLock(pVM); 1934 1936 1935 PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);1937 PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 1936 1938 while (pRam) 1937 1939 { … … 1953 1955 } 1954 1956 1955 pRam = CTXALLSUFF(pRam->pNext);1957 pRam = pRam->CTX_SUFF(pNext); 1956 1958 } 1957 1959 pgmUnlock(pVM); … … 2068 2070 * Lookup the range. 2069 2071 */ 2070 PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);2072 PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 2071 2073 while (pRam && GCPhys > pRam->GCPhysLast) 2072 pRam = CTXALLSUFF(pRam->pNext);2074 pRam = pRam->CTX_SUFF(pNext); 2073 2075 if ( !pRam 2074 2076 || GCPhys > pRam->GCPhysLast -
trunk/src/VBox/VMM/VBoxVMMDeps.cpp
r8155 r13035 49 49 (PFNRT)PDMCritSectEnter, 50 50 (PFNRT)PGMInvalidatePage, 51 (PFNRT)PGMR3Dbg HCPtr2GCPhys,51 (PFNRT)PGMR3DbgR3Ptr2GCPhys, 52 52 (PFNRT)VMR3Create, 53 53 (PFNRT)VMMDoTest, -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r13019 r13035 1303 1303 * Find the guest address. 1304 1304 */ 1305 for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);1305 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 1306 1306 pRam; 1307 pRam = CTXALLSUFF(pRam->pNext))1307 pRam = pRam->CTX_SUFF(pNext)) 1308 1308 { 1309 1309 unsigned iPage = pRam->cb >> PAGE_SHIFT; … … 2568 2568 GCPtrPage, PdeSrc.b.u1Present, PdeSrc.b.u1Write, PdeSrc.b.u1User, (uint64_t)PdeSrc.u, GCPtr, 2569 2569 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); 2571 2571 unsigned iPTDst = 0; 2572 2572 while (iPTDst < RT_ELEMENTS(pPTDst->a)) … … 2574 2574 /* Advance ram range list. */ 2575 2575 while (pRam && GCPhys > pRam->GCPhysLast) 2576 pRam = CTXALLSUFF(pRam->pNext);2576 pRam = pRam->CTX_SUFF(pNext); 2577 2577 if (pRam && GCPhys >= pRam->GCPhys) 2578 2578 { … … 3631 3631 # if PGM_GST_TYPE == PGM_TYPE_32BIT && defined(IN_RING3) 3632 3632 RTGCPHYS GCPhys; 3633 rc = PGMR3Dbg HCPtr2GCPhys(pVM, pPGM->pGuestPDHC, &GCPhys);3633 rc = PGMR3DbgR3Ptr2GCPhys(pVM, pPGM->pGuestPDHC, &GCPhys); 3634 3634 AssertRCReturn(rc, 1); 3635 3635 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 118 118 * There is no apparent need to support ranges which cover more than one ram range. 119 119 */ 120 PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);120 PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 121 121 while (pRam && GCPhys > pRam->GCPhysLast) 122 pRam = CTXALLSUFF(pRam->pNext);122 pRam = pRam->CTX_SUFF(pNext); 123 123 if ( !pRam 124 124 || GCPhysLast < pRam->GCPhys … … 511 511 * There is no apparent need to support ranges which cover more than one ram range. 512 512 */ 513 PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);513 PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 514 514 while (pRam && GCPhys > pRam->GCPhysLast) 515 pRam = CTXALLSUFF(pRam->pNext);515 pRam = pRam->CTX_SUFF(pNext); 516 516 if ( pRam 517 517 && GCPhys <= pRam->GCPhysLast … … 1348 1348 * Check the RAM flags against the handlers. 1349 1349 */ 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)) 1351 1351 { 1352 1352 const unsigned cPages = pRam->cb >> PAGE_SHIFT; -
trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp
r12989 r13035 575 575 * 99.8% of requests are expected to be in the first range. 576 576 */ 577 PPGMRAMRANGE pRam = CTXALLSUFF(pPGM->pRamRanges);577 PPGMRAMRANGE pRam = pPGM->CTX_SUFF(pRamRanges); 578 578 RTGCPHYS off = GCPhys - pRam->GCPhys; 579 579 if (RT_UNLIKELY(off >= pRam->cb)) … … 581 581 do 582 582 { 583 pRam = CTXALLSUFF(pRam->pNext);583 pRam = pRam->CTX_SUFF(pNext); 584 584 if (!pRam) 585 585 return VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS; … … 859 859 * @param pHCPtr Where to store the HC pointer on success. 860 860 */ 861 VMMDECL(int) PGMPhysGCPhys2HCPtr(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange, PRTHCPTR pHCPtr) 861 VMMDECL(int) PGMPhysGCPhys2HCPtr(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange, PRTHCPTR pHCPtr) /** @todo @bugref{1865}: HCPtr -> R3Ptr */ 862 862 { 863 863 #ifdef VBOX_WITH_NEW_PHYS_CODE … … 895 895 *pHCPtr = (RTHCPTR)((RTHCUINTPTR)CTXSUFF(pRam->pavHCChunk)[iChunk] + (off & PGM_DYNAMIC_CHUNK_OFFSET_MASK)); 896 896 } 897 else if (RT_LIKELY(pRam->pv HC))898 *pHCPtr = (RTHCPTR)((RT HCUINTPTR)pRam->pvHC+ off);897 else if (RT_LIKELY(pRam->pvR3)) 898 *pHCPtr = (RTHCPTR)((RTR3UINTPTR)pRam->pvR3 + off); 899 899 else 900 900 return VERR_PGM_PHYS_PAGE_RESERVED; … … 911 911 * @param cbRange Physical range. 912 912 */ 913 VMMDECL(RTHCPTR) PGMPhysGCPhys2HCPtrAssert(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange) 913 VMMDECL(RTHCPTR) PGMPhysGCPhys2HCPtrAssert(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange) /** @todo @bugref{1865}: HCPtr -> R3Ptr */ 914 914 { 915 915 RTHCPTR HCPtr; … … 970 970 * @param pHCPtr Where to store the HC virtual address. 971 971 */ 972 VMMDECL(int) PGMPhysGCPtr2HCPtr(PVM pVM, RTGCPTR GCPtr, PRTHCPTR pHCPtr) 972 VMMDECL(int) PGMPhysGCPtr2HCPtr(PVM pVM, RTGCPTR GCPtr, PRTHCPTR pHCPtr) /** @todo @bugref{1865}: HCPtr -> R3Ptr */ 973 973 { 974 974 #ifdef VBOX_WITH_NEW_PHYS_CODE … … 998 998 * future DBGF API to cpu state independent conversions. 999 999 */ 1000 VMMDECL(int) PGMPhysGCPtr2HCPtrByGstCR3(PVM pVM, RTGCPTR GCPtr, uint64_t cr3, unsigned fFlags, PRTHCPTR pHCPtr) 1000 VMMDECL(int) PGMPhysGCPtr2HCPtrByGstCR3(PVM pVM, RTGCPTR GCPtr, uint64_t cr3, unsigned fFlags, PRTHCPTR pHCPtr) /** @todo @bugref{1865}: HCPtr -> R3Ptr */ 1001 1001 { 1002 1002 #ifdef VBOX_WITH_NEW_PHYS_CODE … … 1154 1154 * Copy loop on ram ranges. 1155 1155 */ 1156 PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);1156 PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 1157 1157 for (;;) 1158 1158 { 1159 1159 /* Find range. */ 1160 1160 while (pRam && GCPhys > pRam->GCPhysLast) 1161 pRam = CTXALLSUFF(pRam->pNext);1161 pRam = pRam->CTX_SUFF(pNext); 1162 1162 /* Inside range or not? */ 1163 1163 if (pRam && GCPhys >= pRam->GCPhys) … … 1214 1214 if (rc == VINF_PGM_HANDLER_DO_DEFAULT) 1215 1215 { 1216 #ifdef IN_GC 1216 #ifdef IN_GC /** @todo @bugref{3202}: R0 too */ 1217 1217 void *pvSrc = NULL; 1218 1218 PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvSrc); … … 1263 1263 if (rc == VINF_PGM_HANDLER_DO_DEFAULT) 1264 1264 { 1265 #ifdef IN_GC 1265 #ifdef IN_GC /** @todo @bugref{3202}: R0 too */ 1266 1266 void *pvSrc = NULL; 1267 1267 PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvSrc); … … 1293 1293 case MM_RAM_FLAGS_MMIO2: // MMIO2 isn't in the mask. 1294 1294 { 1295 #ifdef IN_GC 1295 #ifdef IN_GC /** @todo @bugref{3202}: R0 too */ 1296 1296 void *pvSrc = NULL; 1297 1297 PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvSrc); … … 1415 1415 * Copy loop on ram ranges. 1416 1416 */ 1417 PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);1417 PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 1418 1418 for (;;) 1419 1419 { 1420 1420 /* Find range. */ 1421 1421 while (pRam && GCPhys > pRam->GCPhysLast) 1422 pRam = CTXALLSUFF(pRam->pNext);1422 pRam = pRam->CTX_SUFF(pNext); 1423 1423 /* Inside range or not? */ 1424 1424 if (pRam && GCPhys >= pRam->GCPhys) … … 1517 1517 if (rc == VINF_PGM_HANDLER_DO_DEFAULT) 1518 1518 { 1519 #ifdef IN_GC 1519 #ifdef IN_GC /** @todo @bugref{3202}: R0 too */ 1520 1520 void *pvDst = NULL; 1521 1521 PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvDst); … … 1562 1562 if (rc == VINF_PGM_HANDLER_DO_DEFAULT) 1563 1563 { 1564 #ifdef IN_GC 1564 #ifdef IN_GC /** @todo @bugref{3202}: R0 too */ 1565 1565 void *pvDst = NULL; 1566 1566 PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvDst); … … 1607 1607 if (rc == VINF_PGM_HANDLER_DO_DEFAULT) 1608 1608 { 1609 #ifdef IN_GC 1609 #ifdef IN_GC /** @todo @bugref{3202}: R0 too */ 1610 1610 void *pvDst = NULL; 1611 1611 PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvDst); … … 1636 1636 case MM_RAM_FLAGS_ROM | MM_RAM_FLAGS_MMIO2: /* shadow rom */ 1637 1637 { 1638 #ifdef IN_GC 1638 #ifdef IN_GC /** @todo @bugref{3202}: R0 too */ 1639 1639 void *pvDst = NULL; 1640 1640 PGMGCDynMapHCPage(pVM, PGM_PAGE_GET_HCPHYS(pPage), &pvDst); … … 1718 1718 } 1719 1719 1720 #ifndef IN_GC /* Ring 0 & 3 only */ 1720 #ifndef IN_GC /* Ring 0 & 3 only */ /** @todo @bugref{1865,3202}: this'll be fun! */ 1721 1721 1722 1722 /** … … 1741 1741 * Loop ram ranges. 1742 1742 */ 1743 for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);1743 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 1744 1744 pRam; 1745 pRam = CTXALLSUFF(pRam->pNext))1745 pRam = pRam->CTX_SUFF(pNext)) 1746 1746 { 1747 1747 RTGCPHYS off = GCPhysSrc - pRam->GCPhys; … … 1774 1774 } 1775 1775 } 1776 else if (pRam->pv HC)1776 else if (pRam->pvR3) 1777 1777 { 1778 1778 /* read */ … … 1780 1780 if (cbRead >= cb) 1781 1781 { 1782 memcpy(pvDst, (uint8_t *)pRam->pv HC+ off, cb);1782 memcpy(pvDst, (uint8_t *)pRam->pvR3 + off, cb); 1783 1783 return VINF_SUCCESS; 1784 1784 } 1785 memcpy(pvDst, (uint8_t *)pRam->pv HC+ off, cbRead);1785 memcpy(pvDst, (uint8_t *)pRam->pvR3 + off, cbRead); 1786 1786 1787 1787 /* next */ … … 1825 1825 * Loop ram ranges. 1826 1826 */ 1827 for (PPGMRAMRANGE pRam = CTXALLSUFF(pVM->pgm.s.pRamRanges);1827 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges); 1828 1828 pRam; 1829 pRam = CTXALLSUFF(pRam->pNext))1829 pRam = pRam->CTX_SUFF(pNext)) 1830 1830 { 1831 1831 RTGCPHYS off = GCPhysDst - pRam->GCPhys; … … 1861 1861 } 1862 1862 } 1863 else if (pRam->pv HC)1863 else if (pRam->pvR3) 1864 1864 { 1865 1865 /* write */ … … 1867 1867 if (cbWrite >= cb) 1868 1868 { 1869 memcpy((uint8_t *)pRam->pv HC+ off, pvSrc, cb);1869 memcpy((uint8_t *)pRam->pvR3 + off, pvSrc, cb); 1870 1870 return VINF_SUCCESS; 1871 1871 } 1872 memcpy((uint8_t *)pRam->pv HC+ off, pvSrc, cbWrite);1872 memcpy((uint8_t *)pRam->pvR3 + off, pvSrc, cbWrite); 1873 1873 1874 1874 /* next */ -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r12936 r13035 1951 1951 * Clear all the GCPhys links and rebuild the phys ext free list. 1952 1952 */ 1953 for (PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX ALLSUFF(pRamRanges);1953 for (PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges); 1954 1954 pRam; 1955 pRam = CTXALLSUFF(pRam->pNext))1955 pRam = pRam->CTX_SUFF(pNext)) 1956 1956 { 1957 1957 unsigned iPage = pRam->cb >> PAGE_SHIFT; … … 3028 3028 * Walk range list. 3029 3029 */ 3030 PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX ALLSUFF(pRamRanges);3030 PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges); 3031 3031 while (pRam) 3032 3032 { … … 3046 3046 break; 3047 3047 } 3048 pRam = CTXALLSUFF(pRam->pNext);3048 pRam = pRam->CTX_SUFF(pNext); 3049 3049 } 3050 3050 AssertFatalMsgFailed(("HCPhys=%VHp GCPhys=%VGp\n", HCPhys, GCPhys)); … … 3065 3065 * Walk range list. 3066 3066 */ 3067 PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX ALLSUFF(pRamRanges);3067 PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges); 3068 3068 while (pRam) 3069 3069 { … … 3081 3081 break; 3082 3082 } 3083 pRam = CTXALLSUFF(pRam->pNext);3083 pRam = pRam->CTX_SUFF(pNext); 3084 3084 } 3085 3085 … … 3088 3088 */ 3089 3089 STAM_COUNTER_INC(&pPool->StatTrackLinearRamSearches); 3090 pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX ALLSUFF(pRamRanges);3090 pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges); 3091 3091 while (pRam) 3092 3092 { … … 3102 3102 } 3103 3103 } 3104 pRam = CTXALLSUFF(pRam->pNext);3104 pRam = pRam->CTX_SUFF(pNext); 3105 3105 } 3106 3106 … … 3608 3608 * Clear all the GCPhys links and rebuild the phys ext free list. 3609 3609 */ 3610 for (PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX ALLSUFF(pRamRanges);3610 for (PPGMRAMRANGE pRam = pPool->CTXSUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges); 3611 3611 pRam; 3612 pRam = CTXALLSUFF(pRam->pNext))3612 pRam = pRam->CTX_SUFF(pNext)) 3613 3613 { 3614 3614 unsigned iPage = pRam->cb >> PAGE_SHIFT; -
trunk/src/VBox/VMM/VMMGC/PGMGC.cpp
r12989 r13035 184 184 * Get the ram range. 185 185 */ 186 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRanges GC;186 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesRC; 187 187 while (pRam && GCPhys - pRam->GCPhys >= pRam->cb) 188 pRam = pRam->pNext GC;188 pRam = pRam->pNextRC; 189 189 if (!pRam) 190 190 { … … 222 222 * Get the ram range. 223 223 */ 224 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRanges GC;224 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesRC; 225 225 while (pRam && GCPhys - pRam->GCPhys >= pRam->cb) 226 pRam = pRam->pNext GC;226 pRam = pRam->pNextRC; 227 227 if (!pRam) 228 228 { -
trunk/src/VBox/VMM/VMMR0/PGMR0.cpp
r12989 r13035 156 156 return rc; 157 157 } 158 159 160 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE 161 162 /** darwin stub */ 163 VMMR0DECL(int) PGMR0DynMapGCPage(PVM pVM, RTGCPHYS GCPhys, void **ppv) 164 { 165 Assert(!(GCPhys & PAGE_OFFSET)); 166 return VERR_NOT_IMPLEMENTED; 167 } 168 169 /** darwin stub */ 170 VMMR0DECL(int) PGMR0DynMapGCPageEx(PVM pVM, RTGCPHYS GCPhys, void **ppv) 171 { 172 return VERR_NOT_IMPLEMENTED; 173 } 174 175 /** darwin stub */ 176 VMMR0DECL(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 449 449 GEN_CHECK_OFF(PGM, pRamRangesR3); 450 450 GEN_CHECK_OFF(PGM, pRamRangesR0); 451 GEN_CHECK_OFF(PGM, pRamRanges GC);451 GEN_CHECK_OFF(PGM, pRamRangesRC); 452 452 GEN_CHECK_OFF(PGM, pRomRangesR3); 453 453 GEN_CHECK_OFF(PGM, pRomRangesR0); … … 568 568 GEN_CHECK_OFF(PGMRAMRANGE, pNextR3); 569 569 GEN_CHECK_OFF(PGMRAMRANGE, pNextR0); 570 GEN_CHECK_OFF(PGMRAMRANGE, pNext GC);570 GEN_CHECK_OFF(PGMRAMRANGE, pNextRC); 571 571 GEN_CHECK_OFF(PGMRAMRANGE, GCPhys); 572 572 GEN_CHECK_OFF(PGMRAMRANGE, GCPhysLast); 573 573 GEN_CHECK_OFF(PGMRAMRANGE, cb); 574 574 GEN_CHECK_OFF(PGMRAMRANGE, fFlags); 575 GEN_CHECK_OFF(PGMRAMRANGE, pv HC);575 GEN_CHECK_OFF(PGMRAMRANGE, pvR3); 576 576 GEN_CHECK_OFF(PGMRAMRANGE, pszDesc); 577 577 GEN_CHECK_OFF(PGMRAMRANGE, aPages);
Note:
See TracChangeset
for help on using the changeset viewer.