Lines Matching defs:cPages

59 # define PGMR0DYNMAP_CALC_OVERLOAD(cPages)  ((cPages) / 2)
183 uint16_t cPages;
245 uint32_t cPages;
447 AssertLogRelMsg(!pThis->cUsers && !pThis->paPages && !pThis->pvSavedPTEs && !pThis->cPages,
448 ("cUsers=%d paPages=%p pvSavedPTEs=%p cPages=%#x\n",
449 pThis->cUsers, pThis->paPages, pThis->pvSavedPTEs, pThis->cPages));
508 else if (pThis->cMaxLoad > PGMR0DYNMAP_CALC_OVERLOAD(pThis->cPages - pThis->cGuardPages))
565 if (iPage < pThis->cPages && cRefs > 0)
568 AssertLogRelMsgFailed(("cRefs=%d iPage=%#x cPages=%u\n", cRefs, iPage, pThis->cPages));
615 uint32_t iPage = pThis->cPages;
633 uint32_t iPage = pThis->cPages;
650 Assert(pThis->cPages <= PGMR0DYNMAP_MAX_PAGES);
655 uint32_t cPages = cCpus * PGMR0DYNMAP_PAGES_PER_CPU;
663 while (pThis->cMaxLoad > PGMR0DYNMAP_CALC_OVERLOAD(cPages))
664 cPages += PGMR0DYNMAP_PAGES_PER_CPU;
670 if (cPages < pThis->cPages)
671 cPages = pThis->cPages;
672 cPages *= PGMR0DYNMAP_GUARD_PAGES + 1;
673 if (cPages > PGMR0DYNMAP_MAX_PAGES)
674 cPages = PGMR0DYNMAP_MAX_PAGES;
676 if (cMinPages < pThis->cPages)
677 cMinPages = pThis->cPages;
684 return cPages;
913 * @param cPages The size of the new segment, give as a page count.
915 static int pgmR0DynMapAddSeg(PPGMRZDYNMAP pThis, uint32_t cPages)
924 void *pvSavedPTEs = RTMemRealloc(pThis->pvSavedPTEs, (pThis->fLegacyMode ? sizeof(X86PGUINT) : sizeof(X86PGPAEUINT)) * (pThis->cPages + cPages));
929 void *pvPages = RTMemAllocZ(sizeof(pThis->paPages[0]) * (pThis->cPages + cPages));
932 pvSavedPTEs = RTMemRealloc(pThis->pvSavedPTEs, (pThis->fLegacyMode ? sizeof(X86PGUINT) : sizeof(X86PGPAEUINT)) * pThis->cPages);
940 memcpy(pvPages, pThis->paPages, sizeof(pThis->paPages[0]) * pThis->cPages);
950 uint32_t cMaxPTs = cPages / (pThis->fLegacyMode ? X86_PG_ENTRIES : X86_PG_PAE_ENTRIES) + 2;
955 pSeg->cPages = cPages;
956 pSeg->iPage = pThis->cPages;
958 int rc = RTR0MemObjAllocPage(&pSeg->hMemObj, cPages << PAGE_SHIFT, false);
963 memset(pbPage, 0xfe, cPages << PAGE_SHIFT);
971 uint32_t const iEndPage = pSeg->iPage + cPages;
1046 pThis->cPages += cPages;
1069 if (!pThis->cPages)
1092 uint32_t cPages = pgmR0DynMapCalcNewSize(pThis, &cMinPages);
1093 AssertReturn(cPages, VERR_PGM_DYNMAP_IPE);
1094 int rc = pgmR0DynMapAddSeg(pThis, cPages);
1102 while (RT_SUCCESS(rc) && pThis->cPages < cPages);
1103 if (rc == VERR_NO_MEMORY && pThis->cPages >= cMinPages)
1107 if (pThis->cPages)
1135 uint32_t cPages = pgmR0DynMapCalcNewSize(pThis, &cMinPages);
1136 AssertReturn(cPages, VERR_PGM_DYNMAP_IPE);
1137 if (pThis->cPages >= cPages)
1140 uint32_t cAdd = cPages - pThis->cPages;
1149 while (RT_SUCCESS(rc) && pThis->cPages < cPages);
1150 if (rc == VERR_NO_MEMORY && pThis->cPages >= cMinPages)
1178 uint32_t iPage = pThis->cPages;
1230 pSeg->cPages = 0;
1243 pThis->cPages = 0;
1263 size_t const cPages = MM_HYPER_DYNAMIC_SIZE / PAGE_SIZE;
1265 + sizeof(PGMRZDYNMAPENTRY) * cPages;
1272 pThis->cPages = cPages;
1278 for (size_t iPage = 0; iPage < cPages; iPage++)
1361 uint32_t const cPages = pThis->cPages;
1366 else if (!paPages[(iPage + 1) % cPages].cRefs)
1367 iFreePage = (iPage + 1) % cPages;
1368 else if (!paPages[(iPage + 2) % cPages].cRefs)
1369 iFreePage = (iPage + 2) % cPages;
1375 iFreePage = (iPage + 3) % cPages;
1388 iFreePage = (iFreePage + 1) % cPages;
1397 Assert(iFreePage < cPages);
1402 for (uint32_t iPage2 = (iPage + 3) % cPages; iPage2 != iPage; iPage2 = (iPage2 + 1) % cPages)
1471 uint32_t const cPages = pThis->cPages;
1472 uint32_t iPage = (HCPhys >> PAGE_SHIFT) % cPages;
1478 uint32_t iPage2 = (iPage + 1) % cPages;
1486 iPage2 = (iPage + 2) % cPages;
1514 AssertMsg(pThis->cLoad <= pThis->cPages - pThis->cGuardPages, ("%d/%d\n", pThis->cLoad, pThis->cPages - pThis->cGuardPages));
1600 uint32_t iPage = pThis->cPages;
1643 uint32_t iPage = pThis->cPages;
1880 uint32_t cUnusedPages = pThis->cPages - pThis->cLoad;
1910 Assert(iPage < pThis->cPages);
1918 Assert(pThis->cLoad <= pThis->cPages - pThis->cGuardPages);
2026 Assert(iPage < pThis->cPages);
2075 Assert(iPage < pThis->cPages);
2305 RTAssertMsg2Weak("pgmRZDynMapHCPageCommon: cLoad=%u/%u cPages=%u cGuardPages=%u\n",
2306 pThis->cLoad, pThis->cMaxLoad, pThis->cPages, pThis->cGuardPages);
2515 LogRel(("Load=%u/%u/%u Set=%u/%u\n", pThis->cLoad, pThis->cMaxLoad, pThis->cPages - pThis->cPages, pSet->cEntries, RT_ELEMENTS(pSet->aEntries)));
2580 LogRel(("Load=%u/%u/%u Set=%u/%u\n", pThis->cLoad, pThis->cMaxLoad, pThis->cPages - pThis->cPages, pSet->cEntries, RT_ELEMENTS(pSet->aEntries)));
2684 pThis->cLoad, pThis->cMaxLoad, pThis->cPages - pThis->cPages, pSet->cEntries, RT_ELEMENTS(pSet->aEntries)));