Lines Matching defs:pHeap

40 static void *mmR3UkHeapAlloc(PMMUKHEAP pHeap, MMTAG enmTag, size_t cb, bool fZero, PRTR0PTR pR0Ptr);
56 PMMUKHEAP pHeap = (PMMUKHEAP)MMR3HeapAllocZU(pUVM, MM_TAG_MM, sizeof(MMUKHEAP));
57 if (pHeap)
59 int rc = RTCritSectInit(&pHeap->Lock);
65 pHeap->pUVM = pUVM;
67 PMMUKHEAPSTAT pStat = &pHeap->Stat;
77 *ppHeap = pHeap;
81 MMR3HeapFree(pHeap);
91 * @param pHeap Heap handle.
93 void mmR3UkHeapDestroy(PMMUKHEAP pHeap)
99 RTCritSectDelete(&pHeap->Lock);
104 while (pHeap->pSubHeapHead)
106 PMMUKHEAPSUB pSubHeap = pHeap->pSubHeapHead;
107 pHeap->pSubHeapHead = pSubHeap->pNext;
111 //MMR3HeapFree(pHeap->stats);
112 //MMR3HeapFree(pHeap);
209 * @param pHeap The heap
212 static PMMUKHEAPSUB mmR3UkHeapAddSubHeap(PMMUKHEAP pHeap, size_t cbSubHeap)
214 PMMUKHEAPSUB pSubHeap = (PMMUKHEAPSUB)MMR3HeapAllocU(pHeap->pUVM, MM_TAG_MM/*_UK_HEAP*/, sizeof(*pSubHeap));
224 pSubHeap->pNext = pHeap->pSubHeapHead;
225 pHeap->pSubHeapHead = pSubHeap;
242 * @param pHeap Heap handle.
250 static void *mmR3UkHeapAlloc(PMMUKHEAP pHeap, MMTAG enmTag, size_t cb, bool fZero, PRTR0PTR pR0Ptr)
254 RTCritSectEnter(&pHeap->Lock);
260 pHeap->Stat.cAllocations++;
261 PMMUKHEAPSTAT pStat = (PMMUKHEAPSTAT)RTAvlULGet(&pHeap->pStatTree, (AVLULKEY)enmTag);
266 pStat = (PMMUKHEAPSTAT)MMR3HeapAllocZU(pHeap->pUVM, MM_TAG_MM, sizeof(MMUKHEAPSTAT));
269 pHeap->Stat.cFailures++;
271 RTCritSectLeave(&pHeap->Lock);
275 RTAvlULInsert(&pHeap->pStatTree, &pStat->Core);
280 PUVM pUVM = pHeap->pUVM;
299 pHeap->Stat.cFailures++;
301 RTCritSectLeave(&pHeap->Lock);
311 PMMUKHEAPSUB pSubHeap = pHeap->pSubHeapHead;
324 pSubHeap->pNext = pHeap->pSubHeapHead;
325 pHeap->pSubHeapHead = pSubHeap;
337 pSubHeap = mmR3UkHeapAddSubHeap(pHeap, RT_MAX(RT_ALIGN_Z(cb, PAGE_SIZE) + PAGE_SIZE * 16, _256K));
350 pHeap->Stat.cFailures++;
352 RTCritSectLeave(&pHeap->Lock);
364 pHeap->Stat.cbAllocated += cbActual;
365 pHeap->Stat.cbCurAllocated += cbActual;
370 RTCritSectLeave(&pHeap->Lock);
387 PMMUKHEAP pHeap = pVM->pUVM->mm.s.pUkHeap;
388 RTCritSectEnter(&pHeap->Lock);
396 PMMUKHEAPSUB pSubHeap = pHeap->pSubHeapHead;
403 PMMUKHEAPSTAT pStat = (PMMUKHEAPSTAT)RTAvlULGet(&pHeap->pStatTree, (AVLULKEY)enmTag);
410 pHeap->Stat.cFrees++;
411 pHeap->Stat.cbFreed += cbActual;
412 pHeap->Stat.cbCurAllocated -= cbActual;
416 RTCritSectLeave(&pHeap->Lock);