Initial commit

This commit is contained in:
2025-10-25 19:15:56 -05:00
commit e6a978d36b
13 changed files with 459 additions and 0 deletions

20
include/arena.h Normal file
View File

@@ -0,0 +1,20 @@
#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