All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
le_mem.h
Go to the documentation of this file.
1 
371 //--------------------------------------------------------------------------------------------------
379 //--------------------------------------------------------------------------------------------------
380 
381 #ifndef LEGATO_MEM_INCLUDE_GUARD
382 #define LEGATO_MEM_INCLUDE_GUARD
383 
384 //--------------------------------------------------------------------------------------------------
389 //--------------------------------------------------------------------------------------------------
390 typedef struct le_mem_Pool* le_mem_PoolRef_t;
391 
392 
393 //--------------------------------------------------------------------------------------------------
405 //--------------------------------------------------------------------------------------------------
406 typedef void (*le_mem_Destructor_t)
407 (
408  void* objPtr
409 );
410 
411 
412 //--------------------------------------------------------------------------------------------------
416 //--------------------------------------------------------------------------------------------------
417 typedef struct
418 {
419  size_t numBlocksInUse;
421  size_t numOverflows;
422  uint64_t numAllocs;
423  size_t numFree;
424 }
426 
427 
428 //--------------------------------------------------------------------------------------------------
439 //--------------------------------------------------------------------------------------------------
441 (
442  const char* name,
443  size_t objSize
444 );
446 
447 
448 //--------------------------------------------------------------------------------------------------
457 //--------------------------------------------------------------------------------------------------
459 (
460  le_mem_PoolRef_t pool,
461  size_t numObjects
462 );
463 
464 
465 //--------------------------------------------------------------------------------------------------
473 //--------------------------------------------------------------------------------------------------
474 void* le_mem_TryAlloc
475 (
476  le_mem_PoolRef_t pool
477 );
478 
479 
480 //--------------------------------------------------------------------------------------------------
490 //--------------------------------------------------------------------------------------------------
491 void* le_mem_AssertAlloc
492 (
493  le_mem_PoolRef_t pool
494 );
495 
496 
497 //--------------------------------------------------------------------------------------------------
507 //--------------------------------------------------------------------------------------------------
508 void* le_mem_ForceAlloc
509 (
510  le_mem_PoolRef_t pool
511 );
512 
513 
514 //--------------------------------------------------------------------------------------------------
524 //--------------------------------------------------------------------------------------------------
526 (
527  le_mem_PoolRef_t pool,
528  size_t numObjects
529 );
531 
532 
533 //--------------------------------------------------------------------------------------------------
547 //--------------------------------------------------------------------------------------------------
548 void le_mem_Release
549 (
550  void* objPtr
551 );
552 
553 
554 //--------------------------------------------------------------------------------------------------
563 //--------------------------------------------------------------------------------------------------
564 void le_mem_AddRef
565 (
566  void* objPtr
567 );
568 
569 
570 //--------------------------------------------------------------------------------------------------
579 //--------------------------------------------------------------------------------------------------
581 (
582  le_mem_PoolRef_t pool,
583  le_mem_Destructor_t destructor
584 );
585 
586 
587 //--------------------------------------------------------------------------------------------------
594 //--------------------------------------------------------------------------------------------------
595 void le_mem_GetStats
596 (
597  le_mem_PoolRef_t pool,
598  le_mem_PoolStats_t* statsPtr
599 );
600 
601 
602 //--------------------------------------------------------------------------------------------------
609 //--------------------------------------------------------------------------------------------------
611 (
612  le_mem_PoolRef_t pool
613 );
614 
615 
616 //--------------------------------------------------------------------------------------------------
624 //--------------------------------------------------------------------------------------------------
626 (
627  le_mem_PoolRef_t pool,
628  char* namePtr,
629  size_t bufSize
630 );
631 
632 
633 //--------------------------------------------------------------------------------------------------
641 //--------------------------------------------------------------------------------------------------
642 const bool le_mem_IsSubPool
643 (
644  le_mem_PoolRef_t pool
645 );
646 
647 
648 //--------------------------------------------------------------------------------------------------
656 //--------------------------------------------------------------------------------------------------
658 (
659  le_mem_PoolRef_t pool
660 );
661 
662 
663 //--------------------------------------------------------------------------------------------------
670 //--------------------------------------------------------------------------------------------------
672 (
673  le_mem_PoolRef_t pool
674 );
675 
676 
677 //--------------------------------------------------------------------------------------------------
684 //--------------------------------------------------------------------------------------------------
686 (
687  le_mem_PoolRef_t pool
688 );
689 
690 
691 //--------------------------------------------------------------------------------------------------
698 //--------------------------------------------------------------------------------------------------
700 (
701  const char* name
702 );
703 
704 
705 //--------------------------------------------------------------------------------------------------
715 //--------------------------------------------------------------------------------------------------
717 (
718  le_mem_PoolRef_t superPool,
719  const char* name,
720  size_t numObjects
722 );
723 
724 
725 //--------------------------------------------------------------------------------------------------
734 //--------------------------------------------------------------------------------------------------
736 (
737  le_mem_PoolRef_t subPool
738 );
739 
740 
741 #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:422
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:419
size_t maxNumBlocksUsed
Maximum number of allocated blocks at any one time.
Definition: le_mem.h:420
void le_mem_SetDestructor(le_mem_PoolRef_t pool, le_mem_Destructor_t destructor)
void le_mem_ResetStats(le_mem_PoolRef_t pool)
void(* le_mem_Destructor_t)(void *objPtr)
Definition: le_mem.h:407
void le_mem_SetNumObjsToForce(le_mem_PoolRef_t pool, size_t numObjects)
void le_mem_DeleteSubPool(le_mem_PoolRef_t subPool)
le_mem_PoolRef_t le_mem_FindPool(const char *name)
struct le_mem_Pool * le_mem_PoolRef_t
Definition: le_mem.h:390
le_mem_PoolRef_t le_mem_CreatePool(const char *name, size_t objSize)
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:423
size_t numOverflows
Number of times le_mem_ForceAlloc() had to expand the pool.
Definition: le_mem.h:421
Definition: le_mem.h:417
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)
le_mem_PoolRef_t le_mem_CreateSubPool(le_mem_PoolRef_t superPool, const char *name, size_t numObjects)