5#ifndef ZEPHYR_INCLUDE_SYS_MULTI_HEAP_H_
6#define ZEPHYR_INCLUDE_SYS_MULTI_HEAP_H_
10#define MAX_MULTI_HEAPS 8
52 size_t align,
size_t size);
133 void *cfg,
size_t align,
size_t bytes);
void * sys_multi_heap_alloc(struct sys_multi_heap *mheap, void *cfg, size_t bytes)
Allocate memory from multi heap.
void *(* sys_multi_heap_fn_t)(struct sys_multi_heap *mheap, void *cfg, size_t align, size_t size)
Multi-heap choice function.
Definition: multi_heap.h:51
#define MAX_MULTI_HEAPS
Definition: multi_heap.h:10
void sys_multi_heap_init(struct sys_multi_heap *heap, sys_multi_heap_fn_t choice_fn)
Initialize multi-heap.
void * sys_multi_heap_aligned_alloc(struct sys_multi_heap *mheap, void *cfg, size_t align, size_t bytes)
Allocate aligned memory from multi heap.
void sys_multi_heap_free(struct sys_multi_heap *mheap, void *block)
Free memory allocated from multi heap.
void sys_multi_heap_add_heap(struct sys_multi_heap *mheap, struct sys_heap *heap, void *user_data)
Add sys_heap to multi heap.
const struct sys_multi_heap_rec * sys_multi_heap_get_heap(const struct sys_multi_heap *mheap, void *addr)
Get a specific heap for provided address.
Definition: sys_heap.h:56
Definition: multi_heap.h:55
struct sys_heap * heap
Definition: multi_heap.h:56
void * user_data
Definition: multi_heap.h:57
Definition: multi_heap.h:60
sys_multi_heap_fn_t choice
Definition: multi_heap.h:62
struct sys_multi_heap_rec heaps[8]
Definition: multi_heap.h:63
unsigned int nheaps
Definition: multi_heap.h:61