diff options
| author | nasr <nsrddyn@gmail.com> | 2026-03-26 22:35:30 +0100 |
|---|---|---|
| committer | nasr <nsrddyn@gmail.com> | 2026-04-13 17:24:42 +0200 |
| commit | dd5586abec207dd4acd16d51ce0d392c03e5e957 (patch) | |
| tree | e56573f49ebb2a3236a39148842dc80bde5a286d /source/base/base_arena.h | |
feature(main): initmain
feature(main): init
Diffstat (limited to 'source/base/base_arena.h')
| -rwxr-xr-x | source/base/base_arena.h | 26 |
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 | |||
| 10 | typedef struct mem_arena mem_arena; | ||
| 11 | struct mem_arena | ||
| 12 | { | ||
| 13 | u64 current_position; | ||
| 14 | u64 previous_position; | ||
| 15 | u64 capacity; | ||
| 16 | u8 *base_position; | ||
| 17 | }; | ||
| 18 | |||
| 19 | typedef struct temp_arena temp_arena; | ||
| 20 | struct temp_arena | ||
| 21 | { | ||
| 22 | mem_arena *arena; | ||
| 23 | u64 start_position; | ||
| 24 | }; | ||
| 25 | |||
| 26 | #endif /* BASE_ARENA_H */ | ||
