diff options
Diffstat (limited to 'base/base_arena.h')
| -rw-r--r-- | base/base_arena.h | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/base/base_arena.h b/base/base_arena.h deleted file mode 100644 index 19c4f3d..0000000 --- a/base/base_arena.h +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | #ifndef ARENA_H | ||
| 2 | #define ARENA_H | ||
| 3 | |||
| 4 | #include "base.h" | ||
| 5 | |||
| 6 | /** | ||
| 7 | * Arena Helper macro's | ||
| 8 | * */ | ||
| 9 | |||
| 10 | #define MIN(a, b) (((a) < (b)) ? (a) : (b)) | ||
| 11 | #define MAX(a, b) (((a) > (b)) ? (a) : (b)) | ||
| 12 | #define ALIGN_UP_POW2(n, p) (((u64)(n) + ((u64)(p) - 1)) & (~((u64)(p) - 1))) | ||
| 13 | |||
| 14 | #define PUSH_STRUCT(arena, T) (T *)arena_push((arena), sizeof(T), 0) | ||
| 15 | #define PUSH_STRUCT_NZ(arena, T) (T *)arena_push((arena), sizeof(T), 1) | ||
| 16 | #define PUSH_ARRAY(arena, T, n) (T *)arena_push((arena), sizeof(T) * (n), 0) | ||
| 17 | #define PUSH_ARRAY_NZ(arena, T, n) (T *)arena_push((arena), sizeof(T) * (n), 1) | ||
| 18 | |||
| 19 | #define ARENA_BASE_POS (sizeof(mem_arena)) | ||
| 20 | #define ARENA_ALIGN (sizeof(void *)) | ||
| 21 | |||
| 22 | typedef struct mem_arena mem_arena; | ||
| 23 | |||
| 24 | struct mem_arena | ||
| 25 | { | ||
| 26 | u64 capacity; | ||
| 27 | u64 pos; | ||
| 28 | }; | ||
| 29 | |||
| 30 | local_internal mem_arena * | ||
| 31 | arena_create(u64 capacity); | ||
| 32 | |||
| 33 | local_internal void | ||
| 34 | arena_destroy(mem_arena *arena); | ||
| 35 | |||
| 36 | local_internal void * | ||
| 37 | arena_push(mem_arena *arena, u64 size, b32 non_zero); | ||
| 38 | |||
| 39 | local_internal void | ||
| 40 | arena_pop(mem_arena *arena, u64 size); | ||
| 41 | |||
| 42 | local_internal void | ||
| 43 | arena_pop_to(mem_arena *arena, u64 pos); | ||
| 44 | |||
| 45 | local_internal void | ||
| 46 | arena_clear(mem_arena *arena); | ||
| 47 | |||
| 48 | |||
| 49 | #endif | ||
