From ec02ae32f660e7d19f9ea6728f5dbf314969788f Mon Sep 17 00:00:00 2001 From: tijani Date: Fri, 2 Aug 2024 18:04:49 +0000 Subject: [PATCH] git-svn-id: https://svn.tlawal.org/svn/ragar@6 618e81bd-0769-42e7-8608-769e73fecc77 --- src/base/base_arena.h | 71 ------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 src/base/base_arena.h diff --git a/src/base/base_arena.h b/src/base/base_arena.h deleted file mode 100644 index 920db5b..0000000 --- a/src/base/base_arena.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef BASE_ARENA_H -#define BASE_ARENA_H - -#define ARENA_HEADER_SIZE 128 - -#ifndef ARENA_RESERVE_SIZE - #define ARENA_RESERVE_SIZE MB(64) -#endif - -#ifndef ARENA_COMMIT_SIZE - #define ARENA_COMMIT_SIZE KB(64) -#endif - -#ifndef ARENA_RESERVE_SIZE_LARGE_PAGES - #define ARENA_RESERVE_SIZE_LARGE_PAGES MB(8) -#endif - -#ifndef ARENA_COMMIT_SIZE_LARGE_PAGES - #define ARENA_COMMIT_SIZE_LARGE_PAGES MB(2) -#endif - -// Arena -typedef struct Arena Arena; -struct Arena { - struct Arena *previous; - struct Arena *current; - u64 base_position; - u64 position; - u64 commit; - u64 reserve; - u64 align; - b8 grow; - b8 large_pages; -}; - -typedef struct Temp Temp; -struct Temp { - Arena *arena; - u64 position; -}; - -// Implementation -internal Arena *arena_alloc__sized(u64 int_res, u64 init_cmt); // cmt? res? - -internal Arena *arena_alloc(void); -internal void arena_release(Arena *arena); - -internal void *arena_push__impl(Arena *arena, u64 size); -internal u64 arena_position(Arena *arena); -internal void arena_pop_to(Arena *arena, u64 position); - -internal void arena_absorb(Arena *arena, Arena *sub); - -// Wrapper functions -internal void *arena_push(Arena *arena, u64 size); -internal void *arena_push_contiguous(Arena *arena, u64 size); -internal void arena_clear(Arena *arena); -internal void arena_push_align(Arena *arena, u64 align); -internal void arena_put_back(Arena *arena, u64 amount); - -internal Temp temp_begin(Arena *arena); -internal void temp_end(Temp temp); - -internal b32 ensure_commit(void **commit, void *position, u64 commit_block_size); - -// Main API Macros -#define push_array_no_zero(arena, Type, commit) (Type *)arena_push((arena), sizeof(Type) * (commit)) -#define push_array(arena, Type, commit) \ - (Type *)MemoryZero(push_array_no_zero(arena, Type, commit), sizeof(Type) * (commit)) - -#endif // BASE_ARENA_H