diff options
author | Raymaekers Luca <luca@spacehb.net> | 2025-04-27 12:52:06 +0200 |
---|---|---|
committer | Raymaekers Luca <luca@spacehb.net> | 2025-04-27 13:05:34 +0200 |
commit | f87f7b4f0aaccc65d03ccee5bb11915ead6fb0e1 (patch) | |
tree | d54df0bfde3dbffa02b1f138af4f12456f261e54 /arena.h | |
parent | 0574f5a7c5159a2ae1d7d2182cec982509947db9 (diff) |
First pass at preparing for Github
Diffstat (limited to 'arena.h')
-rw-r--r-- | arena.h | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/arena.h b/arena.h deleted file mode 100644 index f3d21d7..0000000 --- a/arena.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef ARENA_H -#define ARENA_H - -#include <sys/mman.h> -#include <stdint.h> -#include "types.h" - -// Arena Allocator -typedef struct { - void* addr; - u64 size; - u64 pos; -} Arena; -#define PushArray(arena, type, count) (type*)ArenaPush((arena), sizeof(type) * (count)) -#define PushArrayZero(arena, type, count) (type*)ArenaPushZero((arena), sizeof(type) * (count)) -#define PushStruct(arena, type) PushArray((arena), (type), 1) -#define PushStructZero(arena, type) PushArrayZero((arena), (type), 1) - -void ArenaAlloc(Arena* arena, u64 size); -void ArenaRelease(Arena* arena); -void* ArenaPush(Arena* arena, u64 size); - -#endif // ARENA_H - -#ifdef ARENA_IMPL - -// Returns arena in case of success, or 0 if it failed to alllocate the memory -void -ArenaAlloc(Arena* arena, u64 size) -{ - arena->addr = mmap(0, size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); - Assert(arena->addr != MAP_FAILED); - arena->pos = 0; - arena->size = size; -} - -void -ArenaRelease(Arena* arena) -{ - munmap(arena->addr, arena->size); -} - -void* -ArenaPush(Arena* arena, u64 size) -{ - u8* mem; - mem = (u8*)arena->addr + arena->pos; - arena->pos += size; - Assert(arena->pos <= arena->size); - return mem; -} - -#endif // ARENA_IMPL |