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
- For an usage example of this function, refer to Memory Segments page.