Add mmap allocator

This commit is contained in:
Nils O. Selåsdal
2026-06-07 02:27:56 +02:00
parent 256de68410
commit c31aff806d
7 changed files with 116 additions and 51 deletions
+12 -4
View File
@@ -22,9 +22,9 @@ static void arena_test_1(void)
{
ArenaParams arena_params = {};
arena_params.size = 1024+ARENA_HEADER_SZ;
Arena *arena = arena_alloc_(&arena_params);
Arena *arena = arena_alloc(&arena_params);
arena_dump(arena);
char *ptr = arena_push(arena, 512, 1);
void *ptr = arena_push(arena, 512, 1);
MemoryZero(ptr, 512);
printf("Allocated ptr %p\n", ptr);
arena_dump(arena);
@@ -43,27 +43,35 @@ static void arena_test_2(void)
{
ArenaParams arena_params = {};
arena_params.size = 1024+ARENA_HEADER_SZ;
Arena *arena = arena_alloc_(&arena_params);
arena_params.flags = ArenaFlag_UseMalloc;
Arena *arena = arena_alloc(&arena_params);
void *ptr;
ptr = arena_push(arena, 1024, 8);
MemoryZero(ptr, 1024);
printf("Allocated ptr %p\n", ptr);
arena_dump(arena);
ArenaCheckPoint checkpoint = arena_temp_begin(arena);
ptr = arena_push(arena, 4096, 8);
MemoryZero(ptr, 4096);
ptr = arena_push(arena, 4096, 8);
MemoryZero(ptr, 4096);
ArenaCheckPoint checkpoint2 = arena_temp_begin(arena);
ptr = arena_push(arena, 64, 8);
MemoryZero(ptr, 64);
arena_temp_end(&checkpoint2);
arena_temp_end(&checkpoint);
arena_pop_to(arena, 1088);
arena_dump(arena);
ptr = arena_push(arena, 1, 1);
((U8*)ptr)[1] =1; //OOB
((U8*)ptr)[0] = 0x37;
ptr = arena_push(arena, 1, 1);
((U8*)ptr)[0] = 0x73;
arena_pop_to(arena, 1089);
arena_dump(arena);