blob: 80636e2ae69b86e92ee5831b52e891e5cb4a0663 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
|