diff options
| author | Alejandro Sior <aho@sior.be> | 2022-07-23 22:53:47 +0200 |
|---|---|---|
| committer | Alejandro Sior <aho@sior.be> | 2022-07-23 22:53:47 +0200 |
| commit | ef805e9373fd946bf1fe667bf18a54dfed6d1045 (patch) | |
| tree | 7762f9574bbd56c502d4dbba1a9d5f3535035211 /mem/allocator.h | |
kernel: add basic modules: arch, mem, rt
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 |
