summaryrefslogtreecommitdiff
path: root/source/base/base_arena.h
diff options
context:
space:
mode:
authornasr <nsrddyn@gmail.com>2026-03-02 22:43:16 +0000
committernasr <nsrddyn@gmail.com>2026-03-02 22:43:16 +0000
commit56ebfa3f4b0d7a80090b344b294252d2be152bb0 (patch)
tree9d12900a2870dde05e7ce6581104dc2b3070dbe1 /source/base/base_arena.h
parent9053e4a0a20f0c0338aa4c5d9f9c0520184bcad7 (diff)
feature(main): base library impelmentation
Diffstat (limited to 'source/base/base_arena.h')
-rwxr-xr-xsource/base/base_arena.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/source/base/base_arena.h b/source/base/base_arena.h
new file mode 100755
index 0000000..fe71c24
--- /dev/null
+++ b/source/base/base_arena.h
@@ -0,0 +1,24 @@
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))
6#define PushArray(arena, type, len) (type *)arena_alloc((arena), sizeof(type) * (len))
7
8typedef struct mem_arena mem_arena;
9struct mem_arena
10{
11 u64 current_position;
12 u64 previous_position;
13 u64 capacity;
14 u8 *base_position;
15};
16
17typedef struct temp_arena temp_arena;
18struct temp_arena
19{
20 mem_arena *arena;
21 u64 start_position;
22};
23
24#endif /* BASE_ARENA_H */