Skip to content

Slab allocator

struct slab_elcm_candidate {
size_t pages;
size_t bitmap_size_bytes;
size_t obj_count;
};
struct slab_size_constant {
char *name;
size_t size;
size_t align;
struct list_head list;
struct {
struct slab_elcm_candidate cand;
} internal;
};

struct slab_size_constant referenced types:

void slab_allocator_init();
void slab_domain_init(void);
void slab_domains_print();
void slab_domain_init_late();
#define SLAB_SIZE_REGISTER(n, s, a) \ static struct slab_size_constant slab_size_constant_##n \ __attribute__((section(".kernel_slab_sizes"), used)) = { \ .name = #n, \ .size = s, \ .align = a, \ .list = LIST_HEAD_INIT(slab_size_constant_##n.list), \ .internal = {{0}}, \ }
#define SLAB_SIZE_REGISTER_FOR_STRUCT(sname, al) \ SLAB_SIZE_REGISTER(sname, sizeof(struct sname), al)
#define SLAB_OBJ_ALIGN_DEFAULT 8u