diff options
Diffstat (limited to 'mem/allocator.h')
| -rw-r--r-- | mem/allocator.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/mem/allocator.h b/mem/allocator.h new file mode 100644 index 0000000..535965a --- /dev/null +++ b/mem/allocator.h @@ -0,0 +1,23 @@ +#ifndef MEM_ALLOCATOR_H +#define MEM_ALLOCATOR_H + +#include <rt.h> + +typedef struct mem_allocator MemAllocator; + +typedef void *(*MemAlloc)(MemAllocator *, usize); +typedef void *(*MemRealloc)(MemAllocator *, void *, usize); +typedef void (*MemFree)(MemAllocator *, void *); + +/* Abstract object representing an allocator */ +struct mem_allocator { + MemAlloc alloc; + MemRealloc realloc; + MemFree free; +}; + +void *mem_alloc(MemAllocator *self, usize n); +void *mem_realloc(MemAllocator *self, void *ptr, usize n); +void mem_free(MemAllocator *self, void *ptr); + +#endif
\ No newline at end of file |
