|
libmemalloc
v3.0.00
Modern Memory Allocator
|
Manages dynamic memory allocation. More...
Public Attributes | |
| uint8_t * | heap_start |
| uint8_t * | heap_end |
| size_t | metadata_size |
| uintptr_t * | stack_top |
| uintptr_t * | stack_bottom |
| size_t | num_size_classes |
| size_t | num_arenas |
| block_header_t * | last_allocated |
| block_header_t ** | free_lists |
| mem_arena_t * | arenas |
| mmap_t * | mmap_list |
| uint8_t * | last_brk_start |
| uint8_t * | last_brk_end |
| gc_thread_t | gc_thread |
Manages dynamic memory allocation.
This structure manages the heap, including free lists for memory blocks, garbage collection, and allocation strategies.
| mem_arena_t* mem_allocator_t::arenas |
Array of arena metadata
| block_header_t** mem_allocator_t::free_lists |
Segregated free lists by size class
| gc_thread_t mem_allocator_t::gc_thread |
Garbage collector controller
| uint8_t* mem_allocator_t::heap_end |
Current end of the heap
| uint8_t* mem_allocator_t::heap_start |
Base of the user heap region
| block_header_t* mem_allocator_t::last_allocated |
Last block returned (NEXT_FIT)
| uint8_t* mem_allocator_t::last_brk_end |
End (exclusive) of the last sbrk(+) lease
| uint8_t* mem_allocator_t::last_brk_start |
Start address of the last sbrk(+) lease
| size_t mem_allocator_t::metadata_size |
Bytes reserved for bins and arenas
| mmap_t* mem_allocator_t::mmap_list |
Linked list of mmap’d regions
| size_t mem_allocator_t::num_arenas |
Number of arena partitions
| size_t mem_allocator_t::num_size_classes |
Total size classes available
| uintptr_t* mem_allocator_t::stack_bottom |
Lower bound of application stack
| uintptr_t* mem_allocator_t::stack_top |
Upper bound of application stack