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