summaryrefslogtreecommitdiff
path: root/source/base/base_arena.h
diff options
context:
space:
mode:
authornasr <nsrddyn@gmail.com>2026-04-16 17:10:02 +0200
committernasr <nsrddyn@gmail.com>2026-04-16 17:10:02 +0200
commit8ea6a3c8621287d11296b8300029f32a27743d9a (patch)
treecd12aa5fcd3e058fa74b45705c7b82524658d444 /source/base/base_arena.h
parentf430bfe8f71430032bec689bf0bbdc94ac409c22 (diff)
feature(checkpoint): checkpoint cleaning up base library
Diffstat (limited to 'source/base/base_arena.h')
-rwxr-xr-xsource/base/base_arena.h36
1 files changed, 13 insertions, 23 deletions
diff --git a/source/base/base_arena.h b/source/base/base_arena.h
index 71d9e69..dc6dd73 100755
--- a/source/base/base_arena.h
+++ b/source/base/base_arena.h
@@ -1,14 +1,18 @@
1#ifndef ARENA_H 1#ifndef BASE_ARENA_H
2#define ARENA_H 2#define BASE_ARENA_H
3 3
4#define Align(pointer, alignment) align((u64)(pointer), (umm)(alignment)) 4#define Align(pointer, alignment) align((u64)(pointer), (umm)(alignment))
5#define PushStruct(arena, type) (type *)arena_alloc((arena), sizeof(type)) 5#define PushStruct(arena, type) (type *)arena_alloc((arena), sizeof(type), 0)
6#define PushArray(arena, type, len) (type *)arena_alloc((arena), sizeof(type) * (len)) 6#define PushStructZero(arena, type) (type *)arena_alloc((arena), sizeof(type), 1)
7#define PushString(arena, len) (s8 *)arena_alloc((arena), sizeof(s8)*len)) 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)
8 9
9typedef struct mem_arena mem_arena; 10#define KiB(n) (((u64)(n)) << 10)
10typedef struct temp_arena temp_arena; 11#define MiB(n) (((u64)(n)) << 20)
12#define GiB(n) (((u64)(n)) << 30)
11 13
14
15typedef struct mem_arena mem_arena;
12struct mem_arena 16struct mem_arena
13{ 17{
14 u64 current_position; 18 u64 current_position;
@@ -17,25 +21,11 @@ struct mem_arena
17 u8 *base_position; 21 u8 *base_position;
18}; 22};
19 23
24typedef struct temp_arena temp_arena;
20struct temp_arena 25struct temp_arena
21{ 26{
22 mem_arena *arena; 27 mem_arena *arena;
23 u64 start_position; 28 u64 start_position;
24}; 29};
25 30
26internal mem_arena * 31#endif /* BASE_ARENA_H */
27arena_resize_align(
28 mem_arena *arena,
29 void *old_memory,
30 u64 new_size,
31 u64 old_size,
32 umm alignment);
33
34internal mem_arena *
35arena_resize(
36 mem_arena *arena,
37 void *old_memory,
38 u64 new_size,
39 u64 old_size);
40
41#endif