Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Gets a memory block from memory pool.

Warning

This function is deprecated and will be removed in a future version of this product.

...

.

Files

lib_mem.h/lib_mem.c

Prototype

Code Block
LanguageC++
CaptionTextCAPTION
languagecpp
          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.

...

None.

Example Usage

CAPTION
Code Block
LanguageC++
CaptionText
languagecpp
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;
}

...