forked from vitalif/vitastor
17 lines
360 B
C
17 lines
360 B
C
|
#pragma once
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
// Hierarchical bitmap allocator
|
||
|
struct allocator
|
||
|
{
|
||
|
uint64_t size;
|
||
|
uint64_t last_one_mask;
|
||
|
uint64_t mask[];
|
||
|
};
|
||
|
|
||
|
allocator *allocator_create(uint64_t blocks);
|
||
|
void allocator_destroy(allocator *alloc);
|
||
|
void allocator_set(allocator *alloc, uint64_t addr, bool value);
|
||
|
uint64_t allocator_find_free(allocator *alloc);
|