32#define VL_ARENA_NULL 0
41typedef struct vl_arena_node
VL_API 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 end of the specified arena allocation.
Definition vl_arena.c:332
VL_API void vlArenaMemFree(vl_arena *arena, vl_arena_ptr ptr)
Frees a memory block allocated in a vl_arena.
Definition vl_arena.c:292
VL_API vl_arena * vlArenaNew(vl_memsize_t initialSize)
Creates a new arena with the specified initial size.
Definition vl_arena.c:38
VL_API void vlArenaFree(vl_arena *arena)
Frees memory allocated by an arena instance.
Definition vl_arena.c:32
VL_API void vlArenaClear(vl_arena *arena)
Clears all the allocations in the given arena.
Definition vl_arena.c:51
VL_API void vlArenaInit(vl_arena *arena, vl_memsize_t initialSize)
Initializes the vl_arena structure with the given initial size.
Definition vl_arena.c:20
VL_API vl_memsize_t vlArenaTotalFree(vl_arena *arena)
Get the total amount of free memory in the arena.
Definition vl_arena.c:365
VL_API 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:229
VL_API vl_memsize_t vlArenaTotalCapacity(vl_arena *arena)
Get the total capacity of the arena.
Definition vl_arena.c:363
VL_API void vlArenaReserve(vl_arena *arena, vl_memsize_t numBytes)
Reserves storage in the underlying allocation of the given arena.
Definition vl_arena.c:140
VL_API 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:358
VL_API 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 beginning of the specified arena allocation.
Definition vl_arena.c:306
VL_API vl_arena_ptr vlArenaMemAlloc(vl_arena *arena, vl_memsize_t size)
Take memory from the given arena.
Definition vl_arena.c:162
VL_API 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:356
VL_API void vlArenaDelete(vl_arena *arena)
Deletes the given VL arena, freeing all allocated memory and the arena struct itself.
Definition vl_arena.c:45
VL_API vl_arena * vlArenaClone(const vl_arena *src, vl_arena *dest)
Clones the specified arena to another.
Definition vl_arena.c:62
vl_set freeSet
Definition vl_arena.h:86
vl_memory * data
Definition vl_arena.h:85
An arena allocator for efficient memory management.
Definition vl_arena.h:84
VL_MEMORY_T vl_memory
Definition vl_memory.h:108
VL_MEMORY_T vl_transient
Definition vl_memory.h:118
VL_UPTR_T vl_uintptr_t
Unsigned integer type suitable for expressing memory addresses.
Definition vl_numtypes.h:163
An ordered set.
Definition vl_set.h:72