18#define VL_ARENA_NULL 0
26typedef struct vl_arena_node{
void vlArenaInit(vl_arena *arena, vl_memsize_t initialSize)
Initializes the vl_arena structure with the given initial size.
Definition vl_arena.c:18
vl_arena_ptr vlArenaMemPrepend(vl_arena *arena, vl_arena_ptr dst, const void *src, vl_memsize_t length)
Copies a block of memory to the end of the specified arena allocation.
Definition vl_arena.c:263
vl_arena * vlArenaClone(const vl_arena *src, vl_arena *dest)
Clones the specified arena to another.
Definition vl_arena.c:55
void vlArenaReserve(vl_arena *arena, vl_memsize_t numBytes)
Reserves storage in the underlying allocation of the given arena.
Definition vl_arena.c:114
void vlArenaClear(vl_arena *arena)
Clears all the elements in the given arena.
Definition vl_arena.c:45
vl_transient * vlArenaMemSample(vl_arena *arena, vl_arena_ptr ptr)
Sampling function that calculates a transient pointer into the specified arena.
Definition vl_arena.c:309
vl_arena_ptr vlArenaMemAppend(vl_arena *arena, vl_arena_ptr dst, const void *src, vl_memsize_t length)
Copies a block of memory to the beginning of the specified arena allocation.
Definition vl_arena.c:287
void vlArenaDelete(vl_arena *arena)
Deletes the given VL arena, freeing all allocated memory.
Definition vl_arena.c:40
vl_uintptr_t vl_arena_ptr
Definition vl_arena.h:6
vl_arena_ptr vlArenaMemRealloc(vl_arena *arena, vl_arena_ptr ptr, vl_memsize_t size)
Reallocates memory for the given pointer in the given arena.
Definition vl_arena.c:196
void vlArenaFree(vl_arena *arena)
Frees memory allocated by an arena instance.
Definition vl_arena.c:29
void vlArenaMemFree(vl_arena *arena, vl_arena_ptr ptr)
Frees a memory block allocated in a vl_arena.
Definition vl_arena.c:253
vl_memsize_t vlArenaMemSize(vl_arena *arena, vl_arena_ptr ptr)
Get the size of a memory block allocated in a VL arena.
Definition vl_arena.c:313
vl_arena_ptr vlArenaMemAlloc(vl_arena *arena, vl_memsize_t size)
Take memory from the given arena.
Definition vl_arena.c:135
vl_memsize_t vlArenaTotalCapacity(vl_arena *arena)
Get the total capacity of the arena.
Definition vl_arena.c:317
vl_set freeSet
Definition vl_arena.h:59
vl_arena * vlArenaNew(vl_memsize_t initialSize)
Creates a new arena with the specified initial size.
Definition vl_arena.c:34
vl_memory * data
Definition vl_arena.h:58
vl_memsize_t vlArenaTotalFree(vl_arena *arena)
Get the total amount of free memory in the arena.
Definition vl_arena.c:321
An arena allocator.
Definition vl_arena.h:57
VL_MEMORY_SIZE_T vl_memsize_t
Definition vl_memory.h:18
VL_MEMORY_T vl_memory
Definition vl_memory.h:76
VL_MEMORY_T vl_transient
Definition vl_memory.h:85
VL_UPTR_T vl_uintptr_t
Unsigned integer type suitable for expressing memory addresses.
Definition vl_numtypes.h:101
An ordered set.
Definition vl_set.h:53