#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);