381 #ifndef LEGATO_MEM_INCLUDE_GUARD
382 #define LEGATO_MEM_INCLUDE_GUARD
384 #ifndef LEGATO_COMPONENT
385 #define LEGATO_COMPONENT
441 const char* componentName,
468 return _le_mem_CreatePool(
STRINGIZE(LEGATO_COMPONENT), name, objSize);
727 const char* componentName,
746 return _le_mem_FindPool(
STRINGIZE(LEGATO_COMPONENT), name);
760 const char* componentName,
787 return _le_mem_CreateSubPool(superPool,
STRINGIZE(LEGATO_COMPONENT), name, numObjects);
807 #endif // LEGATO_MEM_INCLUDE_GUARD
void * le_mem_TryAlloc(le_mem_PoolRef_t pool)
size_t le_mem_GetTotalNumObjs(le_mem_PoolRef_t pool)
le_mem_PoolRef_t le_mem_ExpandPool(le_mem_PoolRef_t pool, size_t numObjects)
uint64_t numAllocs
Number of times an object has been allocated from this pool.
Definition: le_mem.h:426
le_result_t
Definition: le_basics.h:35
void * le_mem_AssertAlloc(le_mem_PoolRef_t pool)
void le_mem_GetStats(le_mem_PoolRef_t pool, le_mem_PoolStats_t *statsPtr)
const bool le_mem_IsSubPool(le_mem_PoolRef_t pool)
size_t numBlocksInUse
Number of currently allocated blocks.
Definition: le_mem.h:423
static le_mem_PoolRef_t le_mem_FindPool(const char *name)
Definition: le_mem.h:742
size_t maxNumBlocksUsed
Maximum number of allocated blocks at any one time.
Definition: le_mem.h:424
#define STRINGIZE(x)
Definition: le_basics.h:205
void le_mem_SetDestructor(le_mem_PoolRef_t pool, le_mem_Destructor_t destructor)
static le_mem_PoolRef_t le_mem_CreatePool(const char *name, size_t objSize)
Definition: le_mem.h:462
void le_mem_ResetStats(le_mem_PoolRef_t pool)
void(* le_mem_Destructor_t)(void *objPtr)
Definition: le_mem.h:411
void le_mem_SetNumObjsToForce(le_mem_PoolRef_t pool, size_t numObjects)
void le_mem_DeleteSubPool(le_mem_PoolRef_t subPool)
struct le_mem_Pool * le_mem_PoolRef_t
Definition: le_mem.h:394
le_result_t le_mem_GetName(le_mem_PoolRef_t pool, char *namePtr, size_t bufSize)
void le_mem_Release(void *objPtr)
size_t numFree
Number of free objects currently available in this pool.
Definition: le_mem.h:427
size_t numOverflows
Number of times le_mem_ForceAlloc() had to expand the pool.
Definition: le_mem.h:425
size_t le_mem_GetObjectFullSize(le_mem_PoolRef_t pool)
size_t le_mem_GetObjectSize(le_mem_PoolRef_t pool)
void le_mem_AddRef(void *objPtr)
void * le_mem_ForceAlloc(le_mem_PoolRef_t pool)
static le_mem_PoolRef_t le_mem_CreateSubPool(le_mem_PoolRef_t superPool, const char *name, size_t numObjects)
Definition: le_mem.h:780