Kestrel Interface
Loading...
Searching...
No Matches
kest_bump_arena.h
Go to the documentation of this file.
1#ifndef KEST_BUMP_ARENA_H_
2#define KEST_BUMP_ARENA_H_
3
4#define KEST_BUMP_ARENA_ALLOC_ALIGN 4
5#define KEST_BUMP_ARENA_INIT_ALIGN 64
6
7#if (KEST_BUMP_ARENA_ALLOC_ALIGN & (KEST_BUMP_ARENA_ALLOC_ALIGN - 1)) != 0
8#error KEST_BUMP_ARENA_ALLOC_ALIGN must be power of two
9#endif
10#if (KEST_BUMP_ARENA_INIT_ALIGN & (KEST_BUMP_ARENA_INIT_ALIGN - 1)) != 0
11#error KEST_BUMP_ARENA_INIT_ALIGN must be power of two
12#endif
13
14typedef struct {
15 void *base_ua;
16 void *arena;
17 size_t pos;
18 size_t capacity;
19
22
24int kest_bump_arena_init(kest_bump_arena *arena, size_t capacity);
25
26void *kest_bump_arena_alloc(kest_bump_arena *arena, size_t size);
27void *kest_bump_arena_realloc(kest_bump_arena *arena, void *p, size_t size);
29
32
33#endif
int kest_bump_arena_init_empty(kest_bump_arena *arena)
int kest_bump_arena_reset(kest_bump_arena *arena)
void kest_bump_arena_free(kest_bump_arena *arena)
int kest_bump_arena_init(kest_bump_arena *arena, size_t capacity)
void * kest_bump_arena_realloc(kest_bump_arena *arena, void *p, size_t size)
void * kest_bump_arena_alloc(kest_bump_arena *arena, size_t size)
int kest_bump_arena_destroy(kest_bump_arena *arena)
kest_allocator alloc