diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-03-16 08:52:08 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-03-16 08:52:08 +0100 |
| commit | b67872907249bed3bad141fae97350959bffb009 (patch) | |
| tree | 72b940ed7ba66477efbd89866d7c8d482ab9cb09 /kernel/src/memory | |
| parent | 4eb11660539e644e491ed5cf7e7918c3dc7baddd (diff) | |
| download | teachos-b67872907249bed3bad141fae97350959bffb009.tar.xz teachos-b67872907249bed3bad141fae97350959bffb009.zip | |
kernel/memory: rename free list allocator
It is not really a free list allocator, but rather a block list
allocator, since it contains both free and used blocks in the same list.
Diffstat (limited to 'kernel/src/memory')
| -rw-r--r-- | kernel/src/memory/block_list_allocator.cpp (renamed from kernel/src/memory/free_list_allocator.cpp) | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/kernel/src/memory/free_list_allocator.cpp b/kernel/src/memory/block_list_allocator.cpp index 66b6bdb..cc91304 100644 --- a/kernel/src/memory/free_list_allocator.cpp +++ b/kernel/src/memory/block_list_allocator.cpp @@ -1,4 +1,4 @@ -#include "kernel/memory/free_list_allocator.hpp" +#include "kernel/memory/block_list_allocator.hpp" #include "kapi/memory.hpp" #include "kapi/system.hpp" @@ -25,15 +25,15 @@ namespace kernel::memory } } // namespace - free_list_allocator::free_list_allocator(kapi::memory::linear_address base) noexcept + block_list_allocator::block_list_allocator(kapi::memory::linear_address base) noexcept : heap_allocator{} , m_base{base} , m_frontier{base} - , m_free_list{} + , m_block_list{} , m_lock{} {} - auto free_list_allocator::allocate(std::size_t size, std::align_val_t alignment) noexcept -> void * + auto block_list_allocator::allocate(std::size_t size, std::align_val_t alignment) noexcept -> void * { kstd::lock_guard guard{m_lock}; @@ -42,7 +42,7 @@ namespace kernel::memory for (auto attempt = 0uz; attempt < 2uz; ++attempt) { - auto current = m_free_list; + auto current = m_block_list; while (current != nullptr) { if (current->free && current->size >= search_size) @@ -71,7 +71,7 @@ namespace kernel::memory return nullptr; } - auto free_list_allocator::deallocate(void * ptr) noexcept -> void + auto block_list_allocator::deallocate(void * ptr) noexcept -> void { if (!ptr) { @@ -88,7 +88,7 @@ namespace kernel::memory coalesce(block); } - auto free_list_allocator::expand(std::size_t size) noexcept -> bool + auto block_list_allocator::expand(std::size_t size) noexcept -> bool { auto const total_required_size = size + sizeof(block_header); auto const frames_needed = (total_required_size + kapi::memory::frame::size - 1) / kapi::memory::frame::size; @@ -113,13 +113,13 @@ namespace kernel::memory m_frontier += frames_needed * kapi::memory::frame::size; - if (!m_free_list) + if (!m_block_list) { - m_free_list = block; + m_block_list = block; } else { - auto current = m_free_list; + auto current = m_block_list; while (current->next) { current = current->next; @@ -132,7 +132,7 @@ namespace kernel::memory return true; } - auto free_list_allocator::coalesce(block_header * block) noexcept -> void + auto block_list_allocator::coalesce(block_header * block) noexcept -> void { if (block->next && block->next->free) { @@ -159,7 +159,7 @@ namespace kernel::memory } } - auto free_list_allocator::split(block_header * block, std::size_t size, std::size_t padding) noexcept -> void + auto block_list_allocator::split(block_header * block, std::size_t size, std::size_t padding) noexcept -> void { auto const allocation_size = size + padding; |
