Mem_PoolBlkGet()
Gets a memory block from memory pool.
This function is deprecated and will be removed in a future version of this product.
Files
lib_mem.h/lib_mem.c
Prototype
void *Mem_PoolBlkGet (MEM_POOL *pmem_pool, CPU_SIZE_T size, LIB_ERR *perr);
Arguments
pmem_pool
Pointer to memory pool to get memory block from.
size
Size of requested memory (in octets).
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_POOL_EMPTY
LIB_MEM_ERR_INVALID_POOL
LIB_MEM_ERR_INVALID_BLK_IX
LIB_MEM_ERR_INVALID_BLK_SIZE
Returned Value
Pointer to memory block, if no errors;
Pointer to NULL
, otherwise.
Required Configuration
Available only if LIB_MEM_CFG_HEAP_SIZE
is > 0 in lib_cfg.h
.
Notes / Warnings
None.
Example Usage
MEM_POOL AppMemPool; CPU_SIZE_T octets_reqd; void *pmem_blk; 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."); if (err == LIB_MEM_ERR_HEAP_EMPTY) { printf("Heap empty ... %u more octets needed.", octets_reqd); } 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; }