66 if (current_addr + size > end_addr) {
67 panic(
"alc: out of memory");
70 void *ptr = (
void*)current_addr;
108 assert(new_arena !=
NULL,
"anew: failed to allocate arena struct");
111 void *buf =
alc(parent, size);
112 assert(buf !=
NULL,
"anew: failed to allocate arena buffer");
115 hinit(new_arena, buf, size);
arena_t * __anew(arena_t *parent, uint32_t size)
creates a child arena under a central heap
void __hinit(arena_t *arena, void *start, uint32_t size)
initializes a central heap rather then child arena
void __res(arena_t *arena)
resets a arena or heap by setting current to start and overriding data
void * __alc(arena_t *arena, uint32_t size)
allocates memory to a heap