Gears-C/src/arena.h
2025-02-22 19:29:11 +11:00

26 lines
527 B
C

#pragma once
#define ARENA_HEADER_SIZE 64
typedef struct
{
u8 *buffer;
isize length;
isize pos;
u32 init_line_no;
} Arena;
typedef struct
{
Arena *arena;
u64 pos;
} TempArena;
static Arena *CreateArena(rawptr buffer, isize length);
static rawptr ArenaAllocAlign(Arena *arena, isize size, isize align);
static rawptr ArenaAlloc(Arena *arena, isize size);
static void ArenaFree(Arena *arena);
static void ArenaFreeZeroed(Arena *arena);
static Arena *CreateArenaDebug(rawptr buffer, isize length, u32 init_line_no);