Lines Matching refs:paPages

243     PPGMR0DYNMAPENTRY           paPages;
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));
450 if (pThis->paPages)
614 PPGMRZDYNMAPENTRY paPages = pThis->paPages;
617 ASMInvalidatePage(paPages[iPage].pvPage);
635 ASMInvalidatePage(pThis->paPages[iPage].pvPage);
929 void *pvPages = RTMemAllocZ(sizeof(pThis->paPages[0]) * (pThis->cPages + cPages));
940 memcpy(pvPages, pThis->paPages, sizeof(pThis->paPages[0]) * pThis->cPages);
941 void *pvToFree = pThis->paPages;
942 pThis->paPages = (PPGMRZDYNMAPENTRY)pvPages;
977 pThis->paPages[iPage].HCPhys = NIL_RTHCPHYS;
978 pThis->paPages[iPage].pvPage = pbPage;
979 pThis->paPages[iPage].cRefs = 0;
980 pThis->paPages[iPage].uPte.pPae = 0;
982 RTCpuSetFill(&pThis->paPages[iPage].PendingSet);
988 &pThis->paPages[iPage].uPte.pv);
995 ((PX86PGUINT)pThis->pvSavedPTEs)[iPage] = pThis->paPages[iPage].uPte.pLegacy->u;
997 ((PX86PGPAEUINT)pThis->pvSavedPTEs)[iPage] = pThis->paPages[iPage].uPte.pPae->u;
1003 ? pThis->paPages[iPage].uPte.pLegacy->u & X86_PTE_PG_MASK
1004 : pThis->paPages[iPage].uPte.pPae->u & X86_PTE_PAE_PG_MASK;
1008 iPage - pSeg->iPage, HCPhysPage, HCPhysPte, pbPage, pThis->paPages[iPage].uPte.pv));
1031 pgmR0DynMapSetupGuardPage(pThis, &pThis->paPages[iPage]);
1037 if (pThis->paPages[iPage].cRefs != PGMR0DYNMAP_GUARD_PAGE_REF_COUNT)
1038 pgmR0DynMapSetupGuardPage(pThis, &pThis->paPages[iPage]);
1071 RTMemFree(pThis->paPages);
1072 pThis->paPages = NULL;
1177 PPGMRZDYNMAPENTRY paPages = pThis->paPages;
1184 X86PGUINT uOld = paPages[iPage].uPte.pLegacy->u;
1187 while (!ASMAtomicCmpXchgExU32(&paPages[iPage].uPte.pLegacy->u, uNew, uOld, &uOld))
1189 Assert(paPages[iPage].uPte.pLegacy->u == paSavedPTEs[iPage]);
1197 X86PGPAEUINT uOld = paPages[iPage].uPte.pPae->u;
1200 while (!ASMAtomicCmpXchgExU64(&paPages[iPage].uPte.pPae->u, uNew, uOld, &uOld))
1202 Assert(paPages[iPage].uPte.pPae->u == paSavedPTEs[iPage]);
1239 RTMemFree(pThis->paPages);
1240 pThis->paPages = NULL;
1271 pThis->paPages = RT_ALIGN_PT(pThis + 1, 32, PPGMRZDYNMAPENTRY);
1280 pThis->paPages[iPage].HCPhys = NIL_RTHCPHYS;
1281 pThis->paPages[iPage].pvPage = pVM->pgm.s.pbDynPageMapBaseGC + iPage * PAGE_SIZE;
1282 pThis->paPages[iPage].cRefs = 0;
1283 pThis->paPages[iPage].uPte.pLegacy = &pVM->pgm.s.paDynPageMap32BitPTEsGC[iPage];
1284 pThis->paPages[iPage].uPte.pPae = (PX86PTEPAE)&pVM->pgm.s.paDynPageMapPaePTEsGC[iPage];
1310 cRefs = ASMAtomicSubS32(&pThis->paPages[iPage].cRefs, cRefs) - cRefs;
1316 pThis->paPages[iPage].HCPhys = NIL_RTHCPHYS;
1317 ASMAtomicBitClear(pThis->paPages[iPage].uPte.pv, X86_PTE_BIT_P);
1318 ASMInvalidatePage(pThis->paPages[iPage].pvPage);
1362 PPGMRZDYNMAPENTRY paPages = pThis->paPages;
1364 if (!paPages[iPage].cRefs)
1366 else if (!paPages[(iPage + 1) % cPages].cRefs)
1368 else if (!paPages[(iPage + 2) % cPages].cRefs)
1378 if (paPages[iFreePage].HCPhys == HCPhys)
1384 if (!paPages[iFreePage].cRefs)
1403 if (paPages[iPage2].HCPhys == HCPhys)
1411 /*Log6(("pgmR0DynMapPageSlow: old - %RHp %#x %#llx\n", paPages[iFreePage].HCPhys, paPages[iFreePage].cRefs, paPages[iFreePage].uPte.pPae->u));*/
1412 paPages[iFreePage].HCPhys = HCPhys;
1414 RTCpuSetFill(&paPages[iFreePage].PendingSet);
1419 X86PGUINT uOld = paPages[iFreePage].uPte.pLegacy->u;
1424 while (!ASMAtomicCmpXchgExU32(&paPages[iFreePage].uPte.pLegacy->u, uNew, uOld, &uOld))
1426 Assert(paPages[iFreePage].uPte.pLegacy->u == uNew);
1432 X86PGPAEUINT uOld = paPages[iFreePage].uPte.pPae->u;
1437 while (!ASMAtomicCmpXchgExU64(&paPages[iFreePage].uPte.pPae->u, uNew, uOld, &uOld))
1439 Assert(paPages[iFreePage].uPte.pPae->u == uNew);
1440 /*Log6(("pgmR0DynMapPageSlow: #%x - %RHp %p %#llx\n", iFreePage, HCPhys, paPages[iFreePage].pvPage, uNew));*/
1473 PPGMRZDYNMAPENTRY paPages = pThis->paPages;
1474 if (RT_LIKELY(paPages[iPage].HCPhys == HCPhys))
1479 if (RT_LIKELY(paPages[iPage2].HCPhys == HCPhys))
1487 if (paPages[iPage2].HCPhys == HCPhys)
1508 int32_t cRefs = ASMAtomicIncS32(&paPages[iPage].cRefs);
1518 ASMAtomicDecS32(&paPages[iPage].cRefs);
1523 void *pvPage = paPages[iPage].pvPage;
1529 bool fInvalidateIt = RTCpuSetIsMemberByIndex(&paPages[iPage].PendingSet, iRealCpu);
1531 RTCpuSetDelByIndex(&paPages[iPage].PendingSet, iRealCpu);
1591 PPGMRZDYNMAPENTRY paPages = pThis->paPages;
1603 CHECK_RET(!((uintptr_t)paPages[iPage].pvPage & PAGE_OFFSET_MASK), ("#%u: %p\n", iPage, paPages[iPage].pvPage));
1604 if ( paPages[iPage].cRefs == PGMR0DYNMAP_GUARD_PAGE_REF_COUNT
1605 && paPages[iPage].HCPhys == PGMR0DYNMAP_GUARD_PAGE_HCPHYS)
1608 CHECK_RET(paPages[iPage].uPte.pLegacy->u == (paSavedPTEs[iPage] & ~(X86PGUINT)X86_PTE_P),
1609 ("#%u: %#x %#x", iPage, paPages[iPage].uPte.pLegacy->u, paSavedPTEs[iPage]));
1611 CHECK_RET(paPages[iPage].uPte.pLegacy->u == PGMR0DYNMAP_GUARD_PAGE_LEGACY_PTE,
1612 ("#%u: %#x", iPage, paPages[iPage].uPte.pLegacy->u));
1616 else if (paPages[iPage].HCPhys != NIL_RTHCPHYS)
1618 CHECK_RET(!(paPages[iPage].HCPhys & PAGE_OFFSET_MASK), ("#%u: %RHp\n", iPage, paPages[iPage].HCPhys));
1623 | (paPages[iPage].HCPhys & X86_PTE_PAE_PG_MASK);
1624 CHECK_RET(paPages[iPage].uPte.pLegacy->u == uPte,
1625 ("#%u: %#x %#x", iPage, paPages[iPage].uPte.pLegacy->u, uPte));
1626 if (paPages[iPage].cRefs)
1631 CHECK_RET(paPages[iPage].uPte.pLegacy->u == paSavedPTEs[iPage],
1632 ("#%u: %#x %#x", iPage, paPages[iPage].uPte.pLegacy->u, paSavedPTEs[iPage]));
1646 CHECK_RET(!((uintptr_t)paPages[iPage].pvPage & PAGE_OFFSET_MASK), ("#%u: %p\n", iPage, paPages[iPage].pvPage));
1647 if ( paPages[iPage].cRefs == PGMR0DYNMAP_GUARD_PAGE_REF_COUNT
1648 && paPages[iPage].HCPhys == PGMR0DYNMAP_GUARD_PAGE_HCPHYS)
1651 CHECK_RET(paPages[iPage].uPte.pPae->u == (paSavedPTEs[iPage] & ~(X86PGPAEUINT)X86_PTE_P),
1652 ("#%u: %#llx %#llx", iPage, paPages[iPage].uPte.pPae->u, paSavedPTEs[iPage]));
1654 CHECK_RET(paPages[iPage].uPte.pPae->u == PGMR0DYNMAP_GUARD_PAGE_PAE_PTE,
1655 ("#%u: %#llx", iPage, paPages[iPage].uPte.pPae->u));
1659 else if (paPages[iPage].HCPhys != NIL_RTHCPHYS)
1661 CHECK_RET(!(paPages[iPage].HCPhys & PAGE_OFFSET_MASK), ("#%u: %RHp\n", iPage, paPages[iPage].HCPhys));
1666 | (paPages[iPage].HCPhys & X86_PTE_PAE_PG_MASK);
1667 CHECK_RET(paPages[iPage].uPte.pPae->u == uPte,
1668 ("#%u: %#llx %#llx", iPage, paPages[iPage].uPte.pLegacy->u, uPte));
1669 if (paPages[iPage].cRefs)
1674 CHECK_RET(paPages[iPage].uPte.pPae->u == paSavedPTEs[iPage],
1675 ("#%u: %#llx %#llx", iPage, paPages[iPage].uPte.pPae->u, paSavedPTEs[iPage]));
2027 if (RTCpuSetIsMemberByIndex(&pThis->paPages[iPage].PendingSet, iRealCpu))
2029 RTCpuSetDelByIndex(&pThis->paPages[iPage].PendingSet, iRealCpu);
2032 ASMInvalidatePage(pThis->paPages[iPage].pvPage);
2641 uint32_t *pu32Real = &pThis->paPages[pThis->pSegHead->iPage].uPte.pLegacy->u;