Midnight Sun Firmware
Loading...
Searching...
No Matches
Arena

arena Firmware More...

Classes

struct  Arena
 Linear arena allocator state. More...
 

Functions

StatusCode arena_init (Arena *a, void *buffer, ptrdiff_t cap)
 Initialize an arena to use a provided buffer. More...
 
StatusCode arena_reset (Arena *a)
 Reset the arena to reuse all capacity. More...
 
void * arena_alloc (Arena *a, ptrdiff_t size, ptrdiff_t align, ptrdiff_t count)
 Allocate memory from the arena. More...
 

Detailed Description

arena Firmware

Function Documentation

◆ arena_alloc()

void * arena_alloc ( Arena a,
ptrdiff_t  size,
ptrdiff_t  align,
ptrdiff_t  count 
)

Allocate memory from the arena.

Parameters
aArena instance to allocate from
sizeSize of each element in bytes
alignAlignment in bytes (power of two)
countNumber of elements to allocate
Returns
pointer to the address data is stored in, NULL on failure

◆ arena_init()

StatusCode arena_init ( Arena a,
void *  buffer,
ptrdiff_t  cap 
)

Initialize an arena to use a provided buffer.

Parameters
aArena instance to initialize
bufferBacking buffer for allocations
capSize of the buffer in bytes
Returns
STATUS_CODE_OK on success, or an error code on failure

◆ arena_reset()

StatusCode arena_reset ( Arena a)

Reset the arena to reuse all capacity.

Parameters
aArena instance to reset
Returns
STATUS_CODE_OK on success, or an error code on failure