Lines Matching refs:pRam

127     PPGMRAMRANGE pRam = pgmPhysGetRangeAtOrAbove(pVM, GCPhys);
131 if (pRam && GCPhys >= pRam->GCPhys)
136 RTGCPHYS off = GCPhys - pRam->GCPhys;
137 while (off < pRam->cb)
140 PPGMPAGE pPage = &pRam->aPages[iPage];
164 int rc = pgmPhysGCPhys2CCPtrInternalReadOnly(pVM, pPage, pRam->GCPhys + off, &pvSrc, &PgMpLck);
173 pRam->GCPhys + off, pPage, rc));
196 size_t cb = pRam ? pRam->GCPhys - GCPhys : ~(size_t)0;
210 while (pRam && GCPhys > pRam->GCPhysLast)
211 pRam = pRam->CTX_SUFF(pNext);
262 PPGMRAMRANGE pRam = pgmPhysGetRangeAtOrAbove(pVM, GCPhys);
266 if (pRam && GCPhys >= pRam->GCPhys)
271 RTGCPTR off = GCPhys - pRam->GCPhys;
272 while (off < pRam->cb)
275 PPGMPAGE pPage = &pRam->aPages[iPage];
309 int rc = pgmPhysGCPhys2CCPtrInternal(pVM, pPage, pRam->GCPhys + off, &pvDst, &PgMpLck);
317 pRam->GCPhys + off, pPage, rc));
337 if (!pRam)
339 size_t cb = pRam->GCPhys - GCPhys;
348 while (pRam && GCPhys > pRam->GCPhysLast)
349 pRam = pRam->CTX_SUFF(pNext);
630 PPGMRAMRANGE pRam;
636 pRam = *ppRam;
637 if (pRam)
639 *ppRam = pRam->pNextR3;
640 MAKE_LEAF(pRam);
651 pRam = *ppRam;
652 if (!pRam)
654 *ppRam = pRam->pNextR3;
655 MAKE_LEAF(pRam);
656 INSERT_LEFT(pRam, pLeft);
660 INSERT_RIGHT(pRam, pRight);
662 return pRam;
679 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3;
680 PPGMRAMRANGE pRoot = pgmR3PhysRebuildRamRangeSearchTreesRecursively(&pRam, 0);
681 while (pRam)
685 pRoot = pRam;
686 pRam = pRam->pNextR3;
690 PPGMRAMRANGE pRight = pgmR3PhysRebuildRamRangeSearchTreesRecursively(&pRam, iDepth);
707 for (pRam = pVM->pgm.s.pRamRangesXR3; pRam; pRam = pRam->pNextR3)
715 for (pRam = pVM->pgm.s.pRamRangesXR3; pRam; pRam = pRam->pNextR3)
721 if (pRam == pRam2)
724 if (pRam->GCPhys < pRam2->GCPhys)
805 PPGMRAMRANGE pRam = pPrev ? pPrev->pNextR3 : pVM->pgm.s.pRamRangesXR3;
806 pNew->pNextR3 = pRam;
807 pNew->pNextR0 = pRam ? pRam->pSelfR0 : NIL_RTR0PTR;
808 pNew->pNextRC = pRam ? pRam->pSelfRC : NIL_RTRCPTR;
833 * @param pRam Pointer to the new list entry.
836 static void pgmR3PhysUnlinkRamRange2(PVM pVM, PPGMRAMRANGE pRam, PPGMRAMRANGE pPrev)
838 Assert(pPrev ? pPrev->pNextR3 == pRam : pVM->pgm.s.pRamRangesXR3 == pRam);
839 Assert((pRam->fFlags & PGM_RAM_RANGE_FLAGS_FLOATING) || pRam->pSelfR0 == MMHyperCCToR0(pVM, pRam));
840 Assert((pRam->fFlags & PGM_RAM_RANGE_FLAGS_FLOATING) || pRam->pSelfRC == MMHyperCCToRC(pVM, pRam));
844 PPGMRAMRANGE pNext = pRam->pNextR3;
853 Assert(pVM->pgm.s.pRamRangesXR3 == pRam);
869 * @param pRam Pointer to the new list entry.
871 static void pgmR3PhysUnlinkRamRange(PVM pVM, PPGMRAMRANGE pRam)
878 while (pCur != pRam)
885 pgmR3PhysUnlinkRamRange2(pVM, pRam, pPrev);
895 * @param pRam The RAM range in which the pages resides.
900 static int pgmR3PhysFreePageRange(PVM pVM, PPGMRAMRANGE pRam, RTGCPHYS GCPhys, RTGCPHYS GCPhysLast, uint8_t uType)
909 PPGMPAGE pPageDst = &pRam->aPages[(GCPhys - pRam->GCPhys) >> PAGE_SHIFT];
1154 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRangesX);
1155 pRam;
1156 pRam = pRam->CTX_SUFF(pNext))
1158 uint32_t cPages = pRam->cb >> PAGE_SHIFT;
1161 PPGMPAGE pPage = &pRam->aPages[iPage];
1182 pgmPhysPageWriteMonitor(pVM, pPage, pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT));
1233 for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRangesX);
1234 pRam;
1235 pRam = pRam->CTX_SUFF(pNext))
1237 uint32_t cPages = pRam->cb >> PAGE_SHIFT;
1240 PPGMPAGE pPage = &pRam->aPages[iPage];
1258 RTGCPHYS GCPhysPage = pRam->GCPhys + iPage * PAGE_SIZE;
1265 PPGMPAGE pPageNext = &pRam->aPages[iPageClean];
1290 PGM_PAGE_CLEAR_FT_DIRTY(&pRam->aPages[iPage]);
1509 PPGMRAMRANGE pRam = (PPGMRAMRANGE)pvUser;
1510 Assert(pRam->fFlags & PGM_RAM_RANGE_FLAGS_FLOATING);
1511 Assert(pRam->pSelfRC == GCPtrOld + PAGE_SIZE);
1525 pRam->pSelfRC = (RTRCPTR)(GCPtrNew + PAGE_SIZE);
1661 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3;
1662 while (pRam && GCPhysLast >= pRam->GCPhys)
1664 if ( GCPhysLast >= pRam->GCPhys
1665 && GCPhys <= pRam->GCPhysLast)
1668 pRam->GCPhys, pRam->GCPhysLast, pRam->pszDesc),
1672 pPrev = pRam;
1673 pRam = pRam->pNextR3;
1786 for (PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3; pRam; pRam = pRam->pNextR3)
1788 PPGMPAGE pPage = &pRam->aPages[0];
1789 RTGCPHYS GCPhys = pRam->GCPhys;
1790 uint32_t cLeft = pRam->cb >> PAGE_SHIFT;
1802 LogRel(("PGM: RAM Pre-allocation failed at %RGp (in %s) with rc=%Rrc\n", GCPhys, pRam->pszDesc, rc));
1848 for (PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3; pRam; pRam = pRam->pNextR3)
1850 uint32_t iPage = pRam->cb >> PAGE_SHIFT;
1851 AssertMsg(((RTGCPHYS)iPage << PAGE_SHIFT) == pRam->cb, ("%RGp %RGp\n", (RTGCPHYS)iPage << PAGE_SHIFT, pRam->cb));
1855 PPGMPAGE pPage = &pRam->aPages[iPage];
1861 RTGCPHYS GCPhysPage = pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT);
1946 for (PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3; pRam; pRam = pRam->pNextR3)
1948 uint32_t iPage = pRam->cb >> PAGE_SHIFT;
1949 AssertMsg(((RTGCPHYS)iPage << PAGE_SHIFT) == pRam->cb, ("%RGp %RGp\n", (RTGCPHYS)iPage << PAGE_SHIFT, pRam->cb));
1960 PPGMPAGE pPage = &pRam->aPages[iPage];
1970 rc = pgmPhysPageMap(pVM, pPage, pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT), &pvPage);
1981 rc = pgmPhysFreePage(pVM, pReq, &cPendingPages, pPage, pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT));
1988 pgmHandlerPhysicalResetAliasedPage(pVM, pPage, pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT),
2007 PPGMPAGE pPage = &pRam->aPages[iPage];
2023 rc = pgmPhysPageMakeWritable(pVM, pPage, pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT));
2030 rc = pgmPhysPageMap(pVM, pPage, pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT), &pvPage);
2042 pgmHandlerPhysicalResetAliasedPage(pVM, pPage, pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT),
2116 for (PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3; pRam; pRam = pRam->pNextR3)
2118 uint32_t iPage = pRam->cb >> PAGE_SHIFT;
2119 AssertMsg(((RTGCPHYS)iPage << PAGE_SHIFT) == pRam->cb, ("%RGp %RGp\n", (RTGCPHYS)iPage << PAGE_SHIFT, pRam->cb));
2123 PPGMPAGE pPage = &pRam->aPages[iPage];
2131 rc = pgmPhysFreePage(pVM, pReq, &cPendingPages, pPage, pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT));
2206 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3;
2207 while (pRam && GCPhysLast >= pRam->GCPhys)
2209 if ( GCPhysLast >= pRam->GCPhys
2210 && GCPhys <= pRam->GCPhysLast)
2213 AssertLogRelMsgReturnStmt( GCPhys >= pRam->GCPhys
2214 && GCPhysLast <= pRam->GCPhysLast,
2217 pRam->GCPhys, pRam->GCPhysLast, pRam->pszDesc),
2222 PCPGMPAGE pPage = &pRam->aPages[(GCPhys - pRam->GCPhys) >> PAGE_SHIFT];
2229 GCPhys, GCPhysLast, pszDesc, pRam->GCPhys, PGM_PAGE_GET_TYPE(pPage), pRam->pszDesc),
2241 pRamPrev = pRam;
2242 pRam = pRam->pNextR3;
2254 rc = pgmR3PhysFreePageRange(pVM, pRam, GCPhys, GCPhysLast, PGMPAGETYPE_MMIO);
2321 MMHyperFree(pVM, pRam);
2356 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3;
2357 while (pRam && GCPhysLast >= pRam->GCPhys)
2360 if ( GCPhysLast == pRam->GCPhysLast
2361 && GCPhys == pRam->GCPhys)
2363 Assert(pRam->cb == cb);
2374 PPGMPAGE pPage = &pRam->aPages[iPage];
2379 AssertMsgFailed(("%RGp %R[pgmpage]\n", pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT), pPage));
2393 GCPhys, GCPhysLast, pRam->pszDesc));
2398 pgmR3PhysUnlinkRamRange2(pVM, pRam, pRamPrev);
2399 pRam->cb = pRam->GCPhys = pRam->GCPhysLast = NIL_RTGCPHYS;
2400 MMHyperFree(pVM, pRam);
2408 if ( GCPhysLast >= pRam->GCPhys
2409 && GCPhys <= pRam->GCPhysLast)
2411 Assert(GCPhys >= pRam->GCPhys);
2412 Assert(GCPhysLast <= pRam->GCPhysLast);
2417 uint32_t iPage = (GCPhys - pRam->GCPhys) >> PAGE_SHIFT;
2421 PPGMPAGE pPage = &pRam->aPages[iPage];
2425 ("%RGp %R[pgmpage]\n", pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT), pPage));
2433 pRamPrev = pRam;
2434 pRam = pRam->pNextR3;
2783 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3;
2784 while (pRam && GCPhysLast >= pRam->GCPhys)
2786 if ( GCPhys <= pRam->GCPhysLast
2787 && GCPhysLast >= pRam->GCPhys)
2790 AssertLogRelMsgReturn( GCPhys >= pRam->GCPhys
2791 && GCPhysLast <= pRam->GCPhysLast,
2794 pRam->GCPhys, pRam->GCPhysLast, pRam->pszDesc),
2801 pRamPrev = pRam;
2802 pRam = pRam->pNextR3;
2806 PPGMPAGE pPage = &pRam->aPages[(GCPhys - pRam->GCPhys) >> PAGE_SHIFT];
2840 PPGMPAGE pPageDst = &pRam->aPages[(GCPhys - pRam->GCPhys) >> PAGE_SHIFT];
2951 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3;
2952 while (pRam->GCPhys > pCur->RamRange.GCPhysLast)
2953 pRam = pRam->pNextR3;
2955 PPGMPAGE pPageDst = &pRam->aPages[(pCur->RamRange.GCPhys - pRam->GCPhys) >> PAGE_SHIFT];
3187 PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3;
3188 while (pRam && GCPhysLast >= pRam->GCPhys)
3190 if ( GCPhys <= pRam->GCPhysLast
3191 && GCPhysLast >= pRam->GCPhys)
3194 AssertLogRelMsgReturn( GCPhys >= pRam->GCPhys
3195 && GCPhysLast <= pRam->GCPhysLast,
3198 pRam->GCPhys, pRam->GCPhysLast, pRam->pszDesc),
3205 pRamPrev = pRam;
3206 pRam = pRam->pNextR3;
3210 PPGMPAGE pPage = &pRam->aPages[(GCPhys - pRam->GCPhys) >> PAGE_SHIFT];
3216 pRam->GCPhys + ((RTGCPHYS)(uintptr_t)(pPage - &pRam->aPages[0]) << PAGE_SHIFT),
3302 PPGMPAGE pPage = &pRam->aPages[(GCPhys - pRam->GCPhys) >> PAGE_SHIFT];
3316 pRamNew = pRam;
4524 for (PPGMRAMRANGE pRam = pVM->pgm.s.pRamRangesXR3;
4525 pRam;
4526 pRam = pRam->pNextR3)
4528 uint32_t const cPages = pRam->cb >> PAGE_SHIFT;
4530 if (PGM_PAGE_GET_PAGEID(&pRam->aPages[iPage]) == idPage)
4532 pRam->GCPhys + ((RTGCPHYS)iPage << PAGE_SHIFT), &pRam->aPages[iPage], pRam->pszDesc));
4691 PPGMRAMRANGE pRam;
4693 int rc = pgmPhysGetPageAndRangeEx(pVM, GCPhys, &pPage, &pRam);