blob: 535965abab732eb58741e0a605669dbabd7400ad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
|