summaryrefslogtreecommitdiff
path: root/source/base/base_arena.h
diff options
context:
space:
mode:
authornasr <nsrddyn@gmail.com>2026-03-26 22:35:30 +0100
committernasr <nsrddyn@gmail.com>2026-04-13 17:24:42 +0200
commitdd5586abec207dd4acd16d51ce0d392c03e5e957 (patch)
treee56573f49ebb2a3236a39148842dc80bde5a286d /source/base/base_arena.h
feature(main): initmain
feature(main): init
Diffstat (limited to 'source/base/base_arena.h')
-rwxr-xr-xsource/base/base_arena.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/source/base/base_arena.h b/source/base/base_arena.h
new file mode 100755
index 0000000..2818ae4
--- /dev/null
+++ b/source/base/base_arena.h
@@ -0,0 +1,26 @@
1#ifndef BASE_ARENA_H
2#define BASE_ARENA_H
3
4#define Align(pointer, alignment) align((u64)(pointer), (umm)(alignment))
5#define PushStruct(arena, type) (type *)arena_alloc((arena), sizeof(type), 0)
6#define PushStructZero(arena, type) (type *)arena_alloc((arena), sizeof(type), 1)
7#define PushArray(arena, type, len) (type *)arena_alloc((arena), sizeof(type) * (len), 0)
8#define PushArrayZero(arena, type, len) (type *)arena_alloc((arena), sizeof(type) * (len), 1)
9
10typedef struct mem_arena mem_arena;
11struct mem_arena
12{
13 u64 current_position;
14 u64 previous_position;
15 u64 capacity;
16 u8 *base_position;
17};
18
19typedef struct temp_arena temp_arena;
20struct temp_arena
21{
22 mem_arena *arena;
23 u64 start_position;
24};
25
26#endif /* BASE_ARENA_H */