diff options
Diffstat (limited to 'src/arena.h')
| -rw-r--r-- | src/arena.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/arena.h b/src/arena.h new file mode 100644 index 0000000..80636e2 --- /dev/null +++ b/src/arena.h @@ -0,0 +1,23 @@ +#ifndef ALGDS_ARENA_H_ +#define ALGDS_ARENA_H_ + +struct memblock { + void *buf; + int sz; + int cap; + struct memblock *next; +}; +typedef struct memblock memblock_t; + +struct arena { + struct memblock head; + struct memblock *current; + int blocksz; +}; +typedef struct arena arena_t; + +void init_arena(arena_t *r, int blocksz); +void destroy_arena(arena_t *r); +void *arena_alloc(arena_t *r, int sz); + +#endif |
