Files
arena/include/arena.h
2025-10-25 19:15:56 -05:00

21 lines
697 B
C

#ifndef ARENA_INCLUDED
#define ARENA_INCLUDED
struct Arena {
unsigned char *beg;
unsigned char *end;
};
typedef struct Arena Arena;
extern void *arena_alloc(int flags, struct Arena *a, size_t nbytes,
size_t align, size_t count, const char *file, int line);
extern struct Arena arena_new(int flags, size_t cap, const char *file, int line);
extern void arena_back(struct Arena *a, void *buf, size_t len);
#define ARENA(flags, cap) arena_new((flags), (cap), __FILE__, __LINE__)
#define ARENA_BACK(a, buf, len) arena_back((a), (buf), (len))
#define ARENA_ALLOC(flags, a, nbytes, align, count) \
arena_alloc((flags), (a), (nbytes), (align), (count), __FILE__, __LINE__)
#endif