diff options
| author | Mistivia <i@mistivia.com> | 2024-03-24 09:36:51 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2024-03-24 09:36:51 +0800 |
| commit | 1208bdd0fccc5f1e380053d8e0a7f4df6fe8f805 (patch) | |
| tree | a4fddb7211a2782b3934cf02d80ef6d1734ec1c2 /src/arena.h | |
git init
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 |
