Lines Matching refs:pBlock

169     PRTMEMBLOCK pBlock = (PRTMEMBLOCK)g_pfnOrgMalloc(sizeof(*pBlock));
171 PRTMEMBLOCK pBlock = (PRTMEMBLOCK)malloc(sizeof(*pBlock));
173 if (pBlock)
175 pBlock->enmType = enmType;
176 pBlock->cbUnaligned = cbUnaligned;
177 pBlock->cbAligned = cbAligned;
178 pBlock->pszTag = pszTag;
179 pBlock->pvCaller = pvCaller;
180 pBlock->iLine = iLine;
181 pBlock->pszFile = pszFile;
182 pBlock->pszFunction = pszFunction;
184 return pBlock;
191 DECLINLINE(void) rtmemBlockFree(PRTMEMBLOCK pBlock)
194 g_pfnOrgFree(pBlock);
196 free(pBlock);
204 DECLINLINE(void) rtmemBlockInsert(PRTMEMBLOCK pBlock, void *pv)
206 pBlock->Core.Key = pv;
208 bool fRc = RTAvlPVInsert(&g_BlocksTree, &pBlock->Core);
220 PRTMEMBLOCK pBlock = (PRTMEMBLOCK)RTAvlPVRemove(&g_BlocksTree, pv);
222 return pBlock;
231 PRTMEMBLOCK pBlock = (PRTMEMBLOCK)RTAvlPVGet(&g_BlocksTree, pv);
233 return pBlock;
241 PRTMEMBLOCK pBlock = (PRTMEMBLOCK)pNode;
243 pBlock->Core.Key,
244 (unsigned long)pBlock->cbUnaligned,
245 (unsigned long)(pBlock->cbAligned - pBlock->cbUnaligned),
246 pBlock->pvCaller);
267 DECLINLINE(void) rtmemBlockDelayInsert(PRTMEMBLOCK pBlock)
269 size_t cbBlock = RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) + RTALLOC_EFENCE_SIZE;
270 pBlock->Core.pRight = NULL;
271 pBlock->Core.pLeft = NULL;
275 g_pBlocksDelayHead->Core.pLeft = (PAVLPVNODECORE)pBlock;
276 pBlock->Core.pRight = (PAVLPVNODECORE)g_pBlocksDelayHead;
277 g_pBlocksDelayHead = pBlock;
281 g_pBlocksDelayTail = pBlock;
282 g_pBlocksDelayHead = pBlock;
293 PRTMEMBLOCK pBlock = NULL;
297 pBlock = g_pBlocksDelayTail;
298 if (pBlock)
300 g_pBlocksDelayTail = (PRTMEMBLOCK)pBlock->Core.pLeft;
301 if (pBlock->Core.pLeft)
302 pBlock->Core.pLeft->pRight = NULL;
305 g_cbBlocksDelay -= RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) + RTALLOC_EFENCE_SIZE;
309 return pBlock;
351 PRTMEMBLOCK pBlock = rtmemBlockGet(pvOld);
352 if (pBlock)
368 PRTMEMBLOCK pBlock = rtmemBlockGet(pv);
369 if (pBlock)
384 PRTMEMBLOCK pBlock = rtmemBlockGet(pv);
385 if (pBlock)
386 cb = pBlock->cbUnaligned;
582 PRTMEMBLOCK pBlock = rtmemBlockCreate(enmType, cbUnaligned, cbAligned, pszTag, pvCaller, RT_SRC_POS_ARGS);
583 if (!pBlock)
623 rtmemBlockInsert(pBlock, pv);
642 rtmemBlockFree(pBlock);
672 PRTMEMBLOCK pBlock = rtmemBlockRemove(pv);
673 if (pBlock)
676 RTLogPrintf("RTMem %s: pv=%p pvCaller=%p cbUnaligned=%#x\n", pszOp, pv, pvCaller, pBlock->cbUnaligned);
683 void *pvWrong = ASMMemIsAll8((char *)pv + pBlock->cbUnaligned,
684 RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) - pBlock->cbUnaligned,
688 void *pvWrong = ASMMemIsAll8((char *)pv + pBlock->cbUnaligned,
689 pBlock->cbAligned - pBlock->cbUnaligned,
694 RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) - pBlock->cbAligned,
705 memset(pv, RTALLOC_EFENCE_FREE_FILL, pBlock->cbUnaligned);
713 int rc = RTMemProtect(pv, pBlock->cbAligned, RTMEM_PROT_NONE);
719 rtmemBlockDelayInsert(pBlock);
720 while ((pBlock = rtmemBlockDelayRemove()) != NULL)
722 pv = pBlock->Core.Key;
728 size_t cbBlock = RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) + RTALLOC_EFENCE_SIZE;
731 RTMemPageFree(pvBlock, RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) + RTALLOC_EFENCE_SIZE);
734 rtmemBlockFree(pBlock);
738 rtmemComplain(pszOp, "Failed to expand the efence of pv=%p cb=%d, rc=%d.\n", pv, pBlock, rc);
750 void *pvEFence = (char *)pv + pBlock->cb;
754 RTMemPageFree(pvBlock, RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) + RTALLOC_EFENCE_SIZE);
757 rtmemBlockFree(pBlock);
801 PRTMEMBLOCK pBlock = rtmemBlockGet(pvOld);
802 if (pBlock)
807 memcpy(pvRet, pvOld, RT_MIN(cbNew, pBlock->cbUnaligned));