summaryrefslogtreecommitdiff
path: root/prb_arena.h
diff options
context:
space:
mode:
Diffstat (limited to 'prb_arena.h')
-rw-r--r--prb_arena.h48
1 files changed, 0 insertions, 48 deletions
diff --git a/prb_arena.h b/prb_arena.h
deleted file mode 100644
index 0a6de9b..0000000
--- a/prb_arena.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#define DEFAULT_ARENA_SIZE kilobytes(4)
-
-arena_t alloc_arena(u64 capacity)
-{
- void *sys_alloc(u64 length);
-
- /* TODO(pryazha): Find reasonable maximum capacity through testing */
- assert(capacity <= (u64)gigabytes(16));
-
- if (!capacity)
- capacity = DEFAULT_ARENA_SIZE;
-
- /* TODO(pryazha): Use OS specific memory allocator
- * (like VirtualAlloc on Windows or mmap on Linux)
- */
- void *memory = sys_alloc(capacity);
- assert(memory);
-
- arena_t arena = {memory, capacity, 0};
-
- return arena;
-}
-
-void release_arena(arena_t *arena)
-{
- void sys_free(void *memory, u64 length);
-
- assert(arena);
- sys_free(arena->memory, arena->capacity);
- arena->memory = 0;
- arena->capacity = 0;
- arena->used = 0;
-}
-
-void *push_arena(arena_t *arena, u64 size)
-{
- assert(arena);
- assert(arena->used + size <= arena->capacity);
- void *memory = arena->memory + arena->used;
- arena->used += size;
- return memory;
-}
-
-void pop_arena(arena_t *arena, u64 size)
-{
- assert(arena);
- arena->used -= min(size, arena->used);
-}