Component-local allocators

Component-local allocators implement the generic Deallocator and Allocator interfaces. Allocators that operate on address ranges supplement the plain Allocator by implementing the more specific Range_allocator interface.

Genode::Deallocator

Genode::Allocator

Genode::Range_allocator

Slab allocator

The Slab allocator is tailored for allocating small fixed-size memory blocks from a big chunk of memory. For the common use case of using a slab allocator for a certain type rather than for a known byte size, there exists a typed slab allocator as a front end of Slab.

Genode::Slab

Genode::Tslab

AVL-tree-based best-fit allocator

In contrast to the rather limited slab allocators, Allocator_avl allows for arbitrary allocations from a list of address regions. It implements a best-fit allocation strategy, supports arbitrary alignments, and allocations at specified addresses.

Genode::Allocator_avl_base

Genode::Allocator_avl_tpl

Heap and sliced heap

Genode::Heap

Genode::Sliced_heap

Bit allocator

Genode::Bit_allocator