Lines Matching defs:pSub

176         PMMPAGESUBPOOL  pSub = pPool->pHeadFree;
178 if (!--pSub->cPagesFree)
179 pPool->pHeadFree = pSub->pNextFree;
186 const int iPage = ASMBitFirstClear(pSub->auBitmap, pSub->cPages);
189 Assert(!ASMBitTest(pSub->auBitmap, iPage));
190 ASMBitSet(pSub->auBitmap, iPage);
191 return (uint8_t *)pSub->pvPages + PAGE_SIZE * iPage;
194 unsigned *pu = &pSub->auBitmap[0];
195 unsigned *puEnd = &pSub->auBitmap[pSub->cPages / (sizeof(pSub->auBitmap) * 8)];
203 while (iBit < sizeof(pSub->auBitmap[0]) * 8)
208 return (uint8_t *)pSub->pvPages
209 + PAGE_SIZE * (iBit + ((uint8_t *)pu - (uint8_t *)&pSub->auBitmap[0]) * 8);
225 AssertMsgFailed(("how strange, expected to find a free bit in %p, but didn't (%d pages supposed to be free!)\n", pSub, pSub->cPagesFree + 1));
232 PMMPAGESUBPOOL pSub;
234 RT_OFFSETOF(MMPAGESUBPOOL, auBitmap[cPages / (sizeof(pSub->auBitmap[0]) * 8)])
239 (void **)&pSub);
243 PSUPPAGE paPhysPages = (PSUPPAGE)&pSub->auBitmap[cPages / (sizeof(pSub->auBitmap[0]) * 8)];
244 Assert((uintptr_t)paPhysPages >= (uintptr_t)&pSub->auBitmap[1]);
249 &pSub->pvPages,
257 rc = SUPR3LowAlloc(cPages, &pSub->pvPages, NULL, paPhysPages);
263 pSub->cPages = cPages;
264 pSub->cPagesFree= cPages - 1;
265 pSub->paPhysPages = paPhysPages;
266 memset(pSub->auBitmap, 0, cPages / 8);
268 pSub->auBitmap[0] |= 1;
270 pSub->pNextFree = pPool->pHeadFree;
271 pPool->pHeadFree= pSub;
273 pSub->pNext = pPool->pHead;
274 pPool->pHead = pSub;
290 paPhysPages[i].uReserved = (RTHCUINTPTR)pSub;
309 pLookupVirt->pSubPool = pSub;
310 pLookupVirt->Core.Key = pSub->pvPages;
314 return pSub->pvPages;
317 MMHyperFree(pPool->pVM, pSub);