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();Defines
Section titled “Defines”#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