101 void *(*malloc_fn)(
size_t size),
102 void (*free_fn)(
void *ptr));
void * sys_mem_arena_realloc(sys_mem_arena_t *arena, void *ptr, size_t size)
Resize an allocation within a single arena.
Snapshot of arena usage statistics.
void sys_mem_arena_free(sys_mem_arena_t *arena, void *ptr)
Release an allocation owned by a single arena.
sys_mem_arena_t * sys_mem_arena_next(sys_mem_arena_t *arena, sys_mem_stats_t *stats)
Return the next arena in a chain.
struct sys_mem_arena_t sys_mem_arena_t
Arena allocator handle.
size_t size_bytes
Total payload capacity of the arena in bytes.
size_t used_bytes
Number of payload bytes currently allocated.
sys_mem_arena_t * sys_mem_arena_init(size_t size, sys_mem_arena_t *prev, void *(*malloc_fn)(size_t size), void(*free_fn)(void *ptr))
Initialize a new arena.
size_t allocations
Number of active allocations in the arena.
void sys_mem_arena_delete(sys_mem_arena_t *arena)
Delete the tail arena of a chain.
struct sys_mem_stats_t sys_mem_stats_t
Snapshot of arena usage statistics.
void * sys_mem_arena_alloc(sys_mem_arena_t *arena, size_t size)
Allocate memory from a single arena.