Files
slock/arena_allocator.h
T

26 lines
726 B
C

#ifndef ARENA_ALLOCATOR_SENTRY
#define ARENA_ALLOCATOR_SENTRY
#ifndef ARENA_ALIGNMENT
#define ARENA_ALIGNMENT 2*sizeof(void *)
#endif
#define ARENA_ALLOC(a, t) (t *)arena_alloc(a, sizeof(t))
#define ARENA_DEALLOC(a, t) arena_dealloc(a, sizeof(t))
struct arena {
unsigned long long size;
unsigned long long used;
void *memory;
};
struct arena arena_init(void *backing_store, unsigned long long size);
void arena_reset(struct arena *arena);
void arena_tidy(struct arena *arena);
void *arena_alloc(struct arena *arena, unsigned long long size);
void arena_dealloc(struct arena *arena, unsigned long long size);
struct arena temp_arena_begin(struct arena *arena);
void temp_arena_end(struct arena *arena);
#endif