From 444bfa2f41143aff7490e4fa21565947565b7d30 Mon Sep 17 00:00:00 2001 From: nasr Date: Fri, 13 Mar 2026 22:31:21 +0100 Subject: cleanup: generalisation --- source/base/base_arena.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 source/base/base_arena.h (limited to 'source/base/base_arena.h') diff --git a/source/base/base_arena.h b/source/base/base_arena.h new file mode 100755 index 0000000..71d9e69 --- /dev/null +++ b/source/base/base_arena.h @@ -0,0 +1,41 @@ +#ifndef ARENA_H +#define ARENA_H + +#define Align(pointer, alignment) align((u64)(pointer), (umm)(alignment)) +#define PushStruct(arena, type) (type *)arena_alloc((arena), sizeof(type)) +#define PushArray(arena, type, len) (type *)arena_alloc((arena), sizeof(type) * (len)) +#define PushString(arena, len) (s8 *)arena_alloc((arena), sizeof(s8)*len)) + +typedef struct mem_arena mem_arena; +typedef struct temp_arena temp_arena; + +struct mem_arena +{ + u64 current_position; + u64 previous_position; + u64 capacity; + u8 *base_position; +}; + +struct temp_arena +{ + mem_arena *arena; + u64 start_position; +}; + +internal mem_arena * +arena_resize_align( + mem_arena *arena, + void *old_memory, + u64 new_size, + u64 old_size, + umm alignment); + +internal mem_arena * +arena_resize( + mem_arena *arena, + void *old_memory, + u64 new_size, + u64 old_size); + +#endif -- cgit v1.3