From ec3796faff12ba7bf5f775d757ac25834549903d Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Mon, 12 Dec 2022 09:46:01 +0100 Subject: src --- src/allocator.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/allocator.c (limited to 'src/allocator.c') diff --git a/src/allocator.c b/src/allocator.c new file mode 100644 index 0000000..ffb6763 --- /dev/null +++ b/src/allocator.c @@ -0,0 +1,21 @@ +#include "../include/allocator.h" + +allocator create_allocator(uint64_t size) { + allocator allocator; + allocator.cursor = 0; + allocator.size = size; + allocator.memory = mem_alloc(size); + return allocator; +} + +void* allocator_alloc(allocator* al, uint64_t size) { + if (al->cursor + size < al->size) { + al->cursor += size; + return al->memory + al->cursor - size; + } + log_assert(0, "Allocator out of space"); +} + +void destroy_allocator(allocator* al) { + mem_free(al->memory); +} \ No newline at end of file -- cgit v1.2.3-70-g09d2