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..23dc664 --- /dev/null +++ b/src/arena.h | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | #ifndef __VXGG_REWRITE___ARENA_H___25077218513438___ | ||
| 2 | #define __VXGG_REWRITE___ARENA_H___25077218513438___ | ||
| 3 | |||
| 4 | #include <stddef.h> | ||
| 5 | |||
| 6 | typedef struct arena arena; | ||
| 7 | typedef arena simplearena; | ||
| 8 | |||
| 9 | #define ISPOWOF2(x) (((x) & ((x) - 1)) == 0) | ||
| 10 | const size_t MEM_ALIGN_BYTES = (2 * sizeof(void*)); | ||
| 11 | #define MEM_ALIGN(x) ((x) + (((x) & (MEM_ALIGN_BYTES - 1)) != 0) * (MEM_ALIGN_BYTES - ((x) & (MEM_ALIGN_BYTES - 1)))) | ||
| 12 | |||
| 13 | int arena_init(arena **a, size_t bytes); | ||
| 14 | void* arena_alloc(arena * const arena, size_t bytes); | ||
| 15 | int arena_free(arena **arena); | ||
| 16 | int arena_clear(arena **arena); | ||
| 17 | |||
| 18 | int simplearena_init(simplearena **a, size_t bytes); | ||
| 19 | void* simplearena_alloc(simplearena * const a, size_t bytes); | ||
| 20 | int simplearena_free(simplearena **a); | ||
| 21 | int simplearena_free(simplearena **a); | ||
| 22 | |||
| 23 | #endif \ No newline at end of file | ||
