Mem_PoolBlkGetNbrAvail()
Gets a memory pool’s remaining number of blocks available to allocate.
This function is deprecated and will be removed in a future version of this product.
Files
lib_mem.h/lib_mem.c
Prototype
MEM_POOL_BLK_QTY Mem_PoolBlkGetNbrAvail (MEM_POOL *pmem_pool, LIB_ERR *perr)
Arguments
pmem_pool
Pointer to a memory pool structure.
perr
Pointer to variable that will receive the return error code from this function:
LIB_MEM_ERR_NONE
LIB_MEM_ERR_NULL_PTR
LIB_MEM_ERR_INVALID_POOL
Returned Value
Remaining memory pool blocks, if no errors;
0
, otherwise.
Required Configuration
Available only if LIB_MEM_CFG_HEAP_SIZE
is > 0 in lib_cfg.h
.
Notes / Warnings
Mem_PoolBlkGetNbrAvail()
ONLY supports non-heap memory pools. Mem_HeapGetSizeRem()/Mem_SegGetSizeRem()
should be used for heap memory pool/segment (see section 4-4-3 and section 4-4-4).
Example Usage
MEM_POOL AppMemPool; CPU_SIZE_T octets_reqd; void *pmem_blk; MEM_POOL_BLK_QTY nbr_blk_rem; LIB_ERR err; Mem_PoolCreate((MEM_POOL *)&AppMemPool, (void *) 0, /* Create pool from heap ... */ (CPU_SIZE_T ) 0u, (MEM_POOL_BLK_QTY) 10u, /* ... with 10 blocks ... */ (CPU_SIZE_T )100u, /* ... of 100 octets each ... */ (CPU_SIZE_T ) 4u, /* ... and align each block to a 4-byte boundary. */ (CPU_SIZE_T *)&octets_reqd, (LIB_ERR *)&err); if (err != LIB_ERR_NONE) { printf("COULD NOT CREATE MEMORY POOL."); return; } /* Get an 80-byte memory block from the pool. */ pmem_blk = Mem_PoolBlkGet(&AppMemPool, 80u, &err); if (err != LIB_ERR_NONE) { printf("COULD NOT GET MEMORY BLOCK FROM MEMORY POOL."); return; } /* Get number of remaining memory pool blocks. */ nbr_blk_rem = Mem_PoolBlkGetNbrAvail(&AppMemPool, &err); if (err == LIB_ERR_NONE) { printf("%u more blocks available.", nbr_blk_rem); }