rntviewer/src/mem.h

37 lines
701 B
C
Raw Normal View History

2024-07-10 15:48:23 +00:00
#define ARENA_HEADER_SIZE 128
#define ARENA_COMMIT_SIZE (64 * 1024)
#define ARENA_RESERVE_SIZE (64 * 1024 * 1024)
struct Arena {
Arena *prev;
Arena *cur;
u64 base_pos;
u64 pos;
u64 cmt;
u64 res;
u64 align;
2024-07-12 09:58:48 +00:00
u64 mem_used;
u64 mem_peak_used;
2024-07-10 18:11:42 +00:00
b8 grow;
};
struct Temp {
Arena *arena;
u64 pos;
2024-07-10 15:48:23 +00:00
};
struct Thread_Ctx {
Arena *arenas[2];
};
#define countof(a) (sizeof(a) / sizeof((a)[0]))
internal Arena *arena_alloc();
internal void arena_release(Arena *arena);
internal Arena *tctx_get_scratch(Arena **conflicts, u64 count);
#define scratch_begin(conflicts, count) temp_begin(tctx_get_scratch((conflicts), (count)))
#define scratch_end(scratch) temp_end(scratch)