Lines Matching defs:pEntry

105 #define RTMEMPOOL_VALID_ENTRY_RETURN_RC(pEntry, rc) \
107 AssertPtrReturn(pEntry, (rc)); \
108 AssertPtrNullReturn((pEntry)->pMemPool, (rc)); \
109 Assert((pEntry)->cRefs < UINT32_MAX / 2); \
110 AssertReturn((pEntry)->pMemPool->u32Magic == RTMEMPOOL_MAGIC, (rc)); \
174 PRTMEMPOOLENTRY pEntry = pMemPool->pHead;
176 while (pEntry)
178 PRTMEMPOOLENTRY pFree = pEntry;
180 pEntry = pEntry->pNext;
196 DECLINLINE(void) rtMemPoolInitAndLink(PRTMEMPOOLINT pMemPool, PRTMEMPOOLENTRY pEntry)
198 pEntry->pMemPool = pMemPool;
199 pEntry->pNext = NULL;
200 pEntry->pPrev = NULL;
201 pEntry->cRefs = 1;
208 pEntry->pNext = pHead;
210 pHead->pPrev = pEntry;
211 pMemPool->pHead = pEntry;
220 DECLINLINE(void) rtMemPoolUnlink(PRTMEMPOOLENTRY pEntry)
222 PRTMEMPOOLINT pMemPool = pEntry->pMemPool;
227 PRTMEMPOOLENTRY pNext = pEntry->pNext;
228 PRTMEMPOOLENTRY pPrev = pEntry->pPrev;
235 pEntry->pMemPool = NULL;
240 pEntry->pMemPool = NULL;
251 PRTMEMPOOLENTRY pEntry = (PRTMEMPOOLENTRY)RTMemAlloc(cb + sizeof(*pEntry));
252 if (!pEntry)
254 rtMemPoolInitAndLink(pMemPool, pEntry);
256 return pEntry + 1;
266 PRTMEMPOOLENTRY pEntry = (PRTMEMPOOLENTRY)RTMemAllocZ(cb + sizeof(*pEntry));
267 if (!pEntry)
269 rtMemPoolInitAndLink(pMemPool, pEntry);
271 return pEntry + 1;
281 PRTMEMPOOLENTRY pEntry = (PRTMEMPOOLENTRY)RTMemAlloc(cb + sizeof(*pEntry));
282 if (!pEntry)
284 memcpy(pEntry + 1, pvSrc, cb);
285 rtMemPoolInitAndLink(pMemPool, pEntry);
287 return pEntry + 1;
297 PRTMEMPOOLENTRY pEntry = (PRTMEMPOOLENTRY)RTMemAlloc(cbSrc + cbExtra + sizeof(*pEntry));
298 if (!pEntry)
300 memcpy(pEntry + 1, pvSrc, cbSrc);
301 memset((uint8_t *)(pEntry + 1) + cbSrc, '\0', cbExtra);
302 rtMemPoolInitAndLink(pMemPool, pEntry);
304 return pEntry + 1;
340 PRTMEMPOOLENTRY pEntry = (PRTMEMPOOLENTRY)RTMemRealloc(pOldEntry, cbNew + sizeof(*pEntry));
341 if (!pEntry)
346 rtMemPoolInitAndLink(pNewMemPool, pEntry);
348 return pEntry + 1;
362 PRTMEMPOOLENTRY pEntry = (PRTMEMPOOLENTRY)pv - 1;
363 RTMEMPOOL_VALID_ENTRY_RETURN_RC(pEntry, UINT32_MAX);
365 uint32_t cRefs = ASMAtomicIncU32(&pEntry->cRefs);
378 PRTMEMPOOLENTRY pEntry = (PRTMEMPOOLENTRY)pv - 1;
379 RTMEMPOOL_VALID_ENTRY_RETURN_RC(pEntry, UINT32_MAX);
381 || hMemPool == pEntry->pMemPool
382 || (hMemPool == RTMEMPOOL_DEFAULT && pEntry->pMemPool == &g_rtMemPoolDefault));
383 AssertReturn(pEntry->cRefs > 0, UINT32_MAX);
385 uint32_t cRefs = ASMAtomicDecU32(&pEntry->cRefs);
389 rtMemPoolUnlink(pEntry);
390 pEntry->cRefs = UINT32_MAX - 2;
391 RTMemFree(pEntry);
401 PRTMEMPOOLENTRY pEntry = (PRTMEMPOOLENTRY)pv - 1;
402 RTMEMPOOL_VALID_ENTRY_RETURN_RC(pEntry, UINT32_MAX);
404 uint32_t cRefs = ASMAtomicReadU32(&pEntry->cRefs);