26 lines
527 B
C
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);
|
|
|