Mem_SegAllocExt()

Allocates memory from specified memory segment. Allows specifying an alignment.

Files

lib_mem.h/lib_mem.c

Prototype

void  *Mem_SegAllocExt (const  CPU_CHAR    *p_name,
                               MEM_SEG     *p_seg,
                               CPU_SIZE_T   size,
                               CPU_SIZE_T   align,
                               CPU_SIZE_T  *p_bytes_reqd,
                               LIB_ERR     *p_err);

Arguments

p_name

Pointer to allocated object name. Used for allocations tracking. May be DEF_NULL.

p_seg

Pointer to segment from which to allocate memory. Passing DEF_NULL will allocate memory from the general-purpose heap.

size

Size of memory block to allocate, in bytes.

align

Required alignment of memory block, in bytes. MUST be a power of 2.

p_bytes_reqd

Pointer to variable that will receive the number of free bytes missing for the allocation to succeed. Set to DEF_NULL to skip calculation.

p_err

Pointer to variable that will receive the return error code from this function.

LIB_MEM_ERR_NONE

LIB_MEM_ERR_INVALID_MEM_SIZE

LIB_MEM_ERR_INVALID_MEM_ALIGN

LIB_MEM_ERR_NULL_PTR

LIB_MEM_ERR_SEG_OVF

Returned Value

Pointer to allocated memory block, if successful.

DEF_NULL, otherwise.

Required Configuration

None.

Notes / Warnings

  1. For an usage example of this function, refer to Memory Segments page.