7 size_t mem_total = mem_end - mem_start;
8 size_t num_entries = mem_total / allocation_size;
11 num_entries -= (overhead + allocation_size) / allocation_size;
14 header->allocation_size = allocation_size;
15 header->num_entries = num_entries;
28 if(idx < slab->num_entries) {
struct acpi_table_header header
static bool bitmap_get(bitmap_t bitmap, uint64_t entry)
Retrieve state of the given entry from bitmap.
static size_t bitmap_size(size_t num_entries)
Return the size of the bitmap in bytes for a given amount of entries.
uint8_t * bitmap_t
Type for a single entry in the array.
static void bitmap_clear(bitmap_t bitmap, uint64_t entry)
Unset given entry in bitmap.
static void bitmap_set(bitmap_t bitmap, uint64_t entry)
Set given entry in bitmap.
void * memset(void *dest, int c, size_t size)
void panic_message(const char *message)
void slab_free(SlabHeader *slab, ptr_t mem)
ptr_t slab_alloc(SlabHeader *slab)
void init_slab(ptr_t mem_start, ptr_t mem_end, size_t allocation_size)
SlabIndexType num_entries
Number of objects in this region.
static SlabIndexType slab_index(const SlabHeader *slab, const ptr_t mem)
static ptr_t slab_mem(const SlabHeader *slab, const SlabIndexType idx)
uint16_t SlabIndexType
Type for indexing objects in a Slab region.