|
bool | _Heap_Get_first_and_last_block (uintptr_t heap_area_begin, uintptr_t heap_area_size, uintptr_t page_size, uintptr_t min_block_size, Heap_Block **first_block_ptr, Heap_Block **last_block_ptr) |
| Gets the first and last block for the heap area with begin heap_area_begin and size heap_area_size. More...
|
|
uintptr_t | _Heap_Initialize (Heap_Control *heap, void *area_begin, uintptr_t area_size, uintptr_t page_size) |
| Initializes the heap control block heap to manage the area starting at area_begin of size area_size bytes. More...
|
|
void * | _Heap_Allocate_aligned_with_boundary (Heap_Control *heap, uintptr_t size, uintptr_t alignment, uintptr_t boundary) |
| Allocates a memory area of size size bytes from the heap heap. More...
|
|
RTEMS_INLINE_ROUTINE void * | _Heap_Allocate_aligned (Heap_Control *heap, uintptr_t size, uintptr_t alignment) |
| See _Heap_Allocate_aligned_with_boundary() with boundary equals zero.
|
|
RTEMS_INLINE_ROUTINE void * | _Heap_Allocate (Heap_Control *heap, uintptr_t size) |
| See _Heap_Allocate_aligned_with_boundary() with alignment and boundary equals zero.
|
|
bool | _Heap_Free (Heap_Control *heap, void *addr) |
| Frees the allocated memory area starting at addr in the heap heap. More...
|
|
bool | _Heap_Walk (Heap_Control *heap, int source, bool dump) |
| Walks the heap heap to verify its integrity. More...
|
|
void | _Heap_Iterate (Heap_Control *heap, Heap_Block_visitor visitor, void *visitor_arg) |
| Iterates over all blocks of the heap. More...
|
|
Heap_Block * | _Heap_Greedy_allocate (Heap_Control *heap, const uintptr_t *block_sizes, size_t block_count) |
| Greedy allocate that empties the heap. More...
|
|
Heap_Block * | _Heap_Greedy_allocate_all_except_largest (Heap_Control *heap, uintptr_t *allocatable_size) |
| Greedy allocate all blocks except the largest free block. More...
|
|
void | _Heap_Greedy_free (Heap_Control *heap, Heap_Block *blocks) |
| Frees blocks of a greedy allocation. More...
|
|
void | _Heap_Get_information (Heap_Control *heap, Heap_Information_block *info) |
| Returns information about used and free blocks for the heap heap in info.
|
|
void | _Heap_Get_free_information (Heap_Control *heap, Heap_Information *info) |
| Returns information about free blocks for the heap heap in info.
|
|
bool | _Heap_Size_of_alloc_area (Heap_Control *heap, void *addr, uintptr_t *size) |
| Returns the size of the allocatable memory area starting at addr in size. More...
|
|
Heap_Resize_status | _Heap_Resize_block (Heap_Control *heap, void *addr, uintptr_t size, uintptr_t *old_size, uintptr_t *new_size) |
| Resizes the block of the allocated memory area starting at addr. More...
|
|
Heap_Block * | _Heap_Block_allocate (Heap_Control *heap, Heap_Block *block, uintptr_t alloc_begin, uintptr_t alloc_size) |
| Allocates the memory area starting at alloc_begin of size alloc_size bytes in the block block. More...
|
|
RTEMS_INLINE_ROUTINE void | _Heap_Protection_set_delayed_free_fraction (Heap_Control *heap, uintptr_t fraction) |
| Sets the fraction of delayed free blocks that is actually freed during memory shortage. More...
|
|
RTEMS_INLINE_ROUTINE Heap_Block * | _Heap_Free_list_head (Heap_Control *heap) |
|
RTEMS_INLINE_ROUTINE Heap_Block * | _Heap_Free_list_tail (Heap_Control *heap) |
|
RTEMS_INLINE_ROUTINE Heap_Block * | _Heap_Free_list_first (Heap_Control *heap) |
|
RTEMS_INLINE_ROUTINE Heap_Block * | _Heap_Free_list_last (Heap_Control *heap) |
|
RTEMS_INLINE_ROUTINE void | _Heap_Free_list_remove (Heap_Block *block) |
|
RTEMS_INLINE_ROUTINE void | _Heap_Free_list_replace (Heap_Block *old_block, Heap_Block *new_block) |
|
RTEMS_INLINE_ROUTINE void | _Heap_Free_list_insert_after (Heap_Block *block_before, Heap_Block *new_block) |
|
RTEMS_INLINE_ROUTINE void | _Heap_Free_list_insert_before (Heap_Block *block_next, Heap_Block *new_block) |
|
RTEMS_INLINE_ROUTINE bool | _Heap_Is_aligned (uintptr_t value, uintptr_t alignment) |
|
RTEMS_INLINE_ROUTINE uintptr_t | _Heap_Align_down (uintptr_t value, uintptr_t alignment) |
|
RTEMS_INLINE_ROUTINE Heap_Block * | _Heap_Block_at (const Heap_Block *block, uintptr_t offset) |
| Returns the block which is offset away from block.
|
|
RTEMS_INLINE_ROUTINE Heap_Block * | _Heap_Prev_block (const Heap_Block *block) |
|
RTEMS_INLINE_ROUTINE uintptr_t | _Heap_Alloc_area_of_block (const Heap_Block *block) |
|
RTEMS_INLINE_ROUTINE Heap_Block * | _Heap_Block_of_alloc_area (uintptr_t alloc_begin, uintptr_t page_size) |
|
RTEMS_INLINE_ROUTINE uintptr_t | _Heap_Block_size (const Heap_Block *block) |
|
RTEMS_INLINE_ROUTINE void | _Heap_Block_set_size (Heap_Block *block, uintptr_t size) |
|
RTEMS_INLINE_ROUTINE bool | _Heap_Is_prev_used (const Heap_Block *block) |
|
RTEMS_INLINE_ROUTINE bool | _Heap_Is_used (const Heap_Block *block) |
|
RTEMS_INLINE_ROUTINE bool | _Heap_Is_free (const Heap_Block *block) |
|
RTEMS_INLINE_ROUTINE bool | _Heap_Is_block_in_heap (const Heap_Control *heap, const Heap_Block *block) |
|
RTEMS_INLINE_ROUTINE void | _Heap_Set_last_block_size (Heap_Control *heap) |
| Sets the size of the last block for heap heap. More...
|
|
RTEMS_INLINE_ROUTINE uintptr_t | _Heap_Get_size (const Heap_Control *heap) |
| Returns the size of the allocatable area in bytes. More...
|
|
RTEMS_INLINE_ROUTINE uintptr_t | _Heap_Max (uintptr_t a, uintptr_t b) |
|
RTEMS_INLINE_ROUTINE uintptr_t | _Heap_Min (uintptr_t a, uintptr_t b) |
|
Heap Handler Implementation.