Non-Confidential | ![]() | ARM 100073_0608_00_en | ||
| ||||
Home > The C and C++ Library Functions Reference > __rt_heap_extend() |
Defined in rt_heap.h, the __rt_heap_extend()
function returns a new aligned block of memory to add to the heap, if possible.
If you reimplement __rt_stackheap_init()
,
you must reimplement this function. An incomplete prototype implementation
is in rt_memory.s.
This function is not part of the C library standard, but the ARM® C library supports it as an extension.
extern
size_t __rt_heap_extend(size_t
size
,void
**block
);
The calling convention is ordinary AAPCS. On entry, r0
is
the minimum size of the block to add, and r1
holds
a pointer to a location to store the base address.
The default implementation has the following characteristics:
The default implementation extends the heap if there is sufficient
free heap memory. If it cannot, it calls __user_heap_extend()
if
it is implemented. On exit, r0
is the size of
the block acquired, or 0 if nothing could be obtained, and the memory
location r1
pointed to on entry contains the base
address of the block.