From 9ec123c41b66df11116ad92134b6b7e6cf479de4 Mon Sep 17 00:00:00 2001 From: Abdelrahman Said Date: Sun, 24 Mar 2024 19:24:54 +0000 Subject: [PATCH] Start implementing allocator abstraction --- mem/include/allocator/mem_allocator.h | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 mem/include/allocator/mem_allocator.h diff --git a/mem/include/allocator/mem_allocator.h b/mem/include/allocator/mem_allocator.h new file mode 100644 index 0000000..51ac8b2 --- /dev/null +++ b/mem/include/allocator/mem_allocator.h @@ -0,0 +1,31 @@ +#ifndef MEM_ALLOCATOR_H +#define MEM_ALLOCATOR_H + +#include "aliases.h" + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +typedef void *(MemAllocFunc)(u64 size, void *alloc_obj); +typedef void *(MemAllocAlignedFunc)(u64 size, u64 alignment, void *alloc_obj); +typedef void *(MemReallocFunc)(void *ptr, u64 size, void *alloc_obj); +typedef void *(MemReallocAlignedFunc)(void *ptr, u64 size, u64 alignment, + void *alloc_obj); +typedef void(MemFreeFunc)(void *ptr, void *alloc_obj); + +typedef struct allocator Allocator; +struct allocator { + void *obj; + MemAllocFunc *alloc; + MemAllocAlignedFunc *alloc_aligned; + MemReallocFunc *realloc; + MemReallocAlignedFunc *realloc_aligned; + MemFreeFunc *free; +}; + +#ifdef __cplusplus +} +#endif // __cplusplus + +#endif // !MEM_ALLOCATOR_H