Lines Matching defs:pSeg

800  * @param   pSeg        The segment.
805 PPGMR0DYNMAPSEG pSeg, uint32_t cMaxPTs, void **ppvPTE)
821 AssertReturn(pSeg->cPTs < cMaxPTs, VERR_PGM_DYNMAP_IPE);
840 pSeg->ahMemObjPTs[pSeg->cPTs++] = pPgLvl->a[i].hMemObj;
951 PPGMR0DYNMAPSEG pSeg = (PPGMR0DYNMAPSEG)RTMemAllocZ(RT_UOFFSETOF(PGMR0DYNMAPSEG, ahMemObjPTs[cMaxPTs]));
952 if (!pSeg)
954 pSeg->pNext = NULL;
955 pSeg->cPages = cPages;
956 pSeg->iPage = pThis->cPages;
957 pSeg->cPTs = 0;
958 int rc = RTR0MemObjAllocPage(&pSeg->hMemObj, cPages << PAGE_SHIFT, false);
961 uint8_t *pbPage = (uint8_t *)RTR0MemObjAddress(pSeg->hMemObj);
971 uint32_t const iEndPage = pSeg->iPage + cPages;
972 for (uint32_t iPage = pSeg->iPage;
987 rc = pgmR0DynMapPagingArrayMapPte(pThis, &PgLvl, pbPage, pSeg, cMaxPTs,
1001 RTHCPHYS HCPhysPage = RTR0MemObjGetPagePhysAddr(pSeg->hMemObj, iPage - pSeg->iPage);
1008 iPage - pSeg->iPage, HCPhysPage, HCPhysPte, pbPage, pThis->paPages[iPage].uPte.pv));
1027 uint32_t iPage = pSeg->iPage;
1044 pSeg->pNext = pThis->pSegHead;
1045 pThis->pSegHead = pSeg;
1053 while (pSeg->cPTs-- > 0)
1055 rc2 = RTR0MemObjFree(pSeg->ahMemObjPTs[pSeg->cPTs], true /* fFreeMappings */);
1057 pSeg->ahMemObjPTs[pSeg->cPTs] = NIL_RTR0MEMOBJ;
1060 rc2 = RTR0MemObjFree(pSeg->hMemObj, true /* fFreeMappings */);
1062 pSeg->hMemObj = NIL_RTR0MEMOBJ;
1066 RTMemFree(pSeg);
1217 PPGMR0DYNMAPSEG pSeg = pThis->pSegHead;
1218 pThis->pSegHead = pSeg->pNext;
1220 uint32_t iPT = pSeg->cPTs;
1223 rc = RTR0MemObjFree(pSeg->ahMemObjPTs[iPT], true /* fFreeMappings */); AssertRC(rc);
1224 pSeg->ahMemObjPTs[iPT] = NIL_RTR0MEMOBJ;
1226 rc = RTR0MemObjFree(pSeg->hMemObj, true /* fFreeMappings */); AssertRC(rc);
1227 pSeg->hMemObj = NIL_RTR0MEMOBJ;
1228 pSeg->pNext = NULL;
1229 pSeg->iPage = UINT16_MAX;
1230 pSeg->cPages = 0;
1231 pSeg->cPTs = 0;
1232 RTMemFree(pSeg);