2
3
4#ifndef c89atomic_bitmap_allocator_h
5#define c89atomic_bitmap_allocator_h
7#include "../c89atomic.h"
9#ifndef C89ATOMIC_BITMAP_ALLOCATOR_API
10#define C89ATOMIC_BITMAP_ALLOCATOR_API
15 C89ATOMIC_BITMAP_ALLOCATOR_SUCCESS = 0,
16 C89ATOMIC_BITMAP_ALLOCATOR_INVALID_ARGS,
17 C89ATOMIC_BITMAP_ALLOCATOR_OUT_OF_MEMORY
18} c89atomic_bitmap_allocator_result;
24 c89atomic_uint32* bitmap;
26} c89atomic_bitmap_allocator;
28C89ATOMIC_BITMAP_ALLOCATOR_API c89atomic_bitmap_allocator_result c89atomic_bitmap_allocator_init(
void* pBitmap, size_t sizeInBits, c89atomic_bitmap_allocator* pAllocator);
29C89ATOMIC_BITMAP_ALLOCATOR_API c89atomic_bitmap_allocator_result c89atomic_bitmap_allocator_alloc(c89atomic_bitmap_allocator* pAllocator, size_t* pIndex);
#define c89atomic_memory_order_relaxed
#define c89atomic_memory_order_acq_rel
#define C89ATOMIC_BITMAP_ALLOCATOR_API