16 #ifndef _RTEMS_MALLOC_H 17 #define _RTEMS_MALLOC_H 45 void RTEMS_Malloc_Initialize(
51 extern ptrdiff_t RTEMS_Malloc_Sbrk_amount;
53 static inline void rtems_heap_set_sbrk_amount( ptrdiff_t sbrk_amount )
55 RTEMS_Malloc_Sbrk_amount = sbrk_amount;
58 typedef void *(*rtems_heap_extend_handler)(
71 void *rtems_heap_null_extend(
76 extern const rtems_heap_extend_handler rtems_malloc_extend_handler;
81 typedef void (*rtems_malloc_dirtier_t)(
void *, size_t);
82 extern rtems_malloc_dirtier_t rtems_malloc_dirty_helper;
205 const uintptr_t *block_sizes,
219 uintptr_t *allocatable_size
uintptr_t(* Heap_Initialization_or_extend_handler)(Heap_Control *heap, void *area_begin, uintptr_t area_size, uintptr_t page_size_or_unused)
Heap initialization and extend handler type.
Definition: heap.h:289
void * rtems_malloc(size_t size) RTEMS_MALLOCLIKE RTEMS_ALLOC_SIZE(1) RTEMS_WARN_UNUSED_RESULT
Allocates a memory area of the specified size from the heap.
#define RTEMS_ALLOC_SIZE_2(_count_index, _size_index)
Tells the compiler the memory allocation item count and item size parameter of this function similar ...
Definition: basedefs.h:268
Heap area structure for table based heap initialization and extension.
Definition: heap.h:275
void * rtems_heap_extend_via_sbrk(Heap_Control *heap, size_t alloc_size)
RTEMS Extend Heap via Sbrk.
Definition: rtems_heap_extend_via_sbrk.c:34
void * rtems_calloc(size_t nelem, size_t elsize) RTEMS_MALLOCLIKE RTEMS_ALLOC_SIZE_2(1
Allocates a memory area for the specified count of elements from the heap.
void rtems_heap_greedy_free(void *opaque)
Frees space of a greedy allocation.
Definition: rtems_heap_greedy.c:58
rtems_status_code
Classic API Status.
Definition: status.h:43
void rtems_malloc_dirty_memory(void *start, size_t size)
Dirty Memory Function.
Definition: malloc_dirtier.c:28
#define RTEMS_MALLOCLIKE
Tells the compiler that this function is a memory allocation function similar to malloc().
Definition: basedefs.h:247
Control block used to manage a heap.
Definition: heap.h:255
Heap_Control * RTEMS_Malloc_Heap
C program heap control.
Standard C Library Support.
Interface to Kernel Print Methods.
void * rtems_heap_greedy_allocate(const uintptr_t *block_sizes, size_t block_count)
Greedy allocate that empties the heap.
Definition: rtems_heap_greedy.c:28
#define RTEMS_ALLOC_SIZE(_index)
Tells the compiler the memory allocation size parameter of this function similar to malloc()...
Definition: basedefs.h:257
rtems_status_code rtems_heap_extend(void *area_begin, uintptr_t area_size)
Extends the memory available for the heap using the memory area starting at area_begin of size area_s...
int rtems_memalign(void **pointer, size_t alignment, size_t size)
RTEMS Variation on Aligned Memory Allocation.
void * rtems_heap_allocate_aligned_with_boundary(size_t size, uintptr_t alignment, uintptr_t boundary) RTEMS_MALLOCLIKE RTEMS_ALLOC_SIZE(1) RTEMS_ALLOC_ALIGN(2) RTEMS_WARN_UNUSED_RESULT
Allocates a memory area of size size bytes from the heap.
unsigned size
Definition: tte.h:74
#define RTEMS_WARN_UNUSED_RESULT
Tells the compiler that the result of this function should be used.
Definition: basedefs.h:287
void * rtems_heap_greedy_allocate_all_except_largest(uintptr_t *allocatable_size)
Greedy allocate all blocks except the largest free block.
Definition: rtems_heap_greedy.c:42
#define RTEMS_ALLOC_ALIGN(_index)
Tells the compiler the memory allocation alignment parameter of this function similar to aligned_allo...
Definition: basedefs.h:278