diff options
Diffstat (limited to 'src/ez_arena.h')
| -rw-r--r-- | src/ez_arena.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/ez_arena.h b/src/ez_arena.h new file mode 100644 index 0000000..19def60 --- /dev/null +++ b/src/ez_arena.h @@ -0,0 +1,18 @@ +#pragma once + +#include "common.h" + +#define EZ_ARENA_BASE_POS (sizeof(ez_arena_t)) + +typedef struct { + u64 alloc_size; + u64 pos; +} ez_arena_t; + +ez_arena_t *ez_arena_create(u64 size, b32 zero_out); + void *ez_arena_alloc(ez_arena_t *arena, u64 alloc_amount); + void *ez_arena_alloc_nz(ez_arena_t *arena, u64 alloc_amount); + void ez_arena_clear(ez_arena_t *arena, b32 zero_out); + void ez_arena_destroy(ez_arena_t *arena); + +#define EZA_ALLOC_ARRAY(arena, T, n) (T*)ez_arena_alloc(arena, sizeof(T) * (n)) |