aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/CMakeLists.txt2
-rw-r--r--kernel/include/kernel/memory/block_list_allocator.hpp (renamed from kernel/include/kernel/memory/free_list_allocator.hpp)18
-rw-r--r--kernel/src/memory.cpp4
-rw-r--r--kernel/src/memory/block_list_allocator.cpp (renamed from kernel/src/memory/free_list_allocator.cpp)24
4 files changed, 24 insertions, 24 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt
index 566ab9e..02e517c 100644
--- a/kernel/CMakeLists.txt
+++ b/kernel/CMakeLists.txt
@@ -11,7 +11,7 @@ add_executable("kernel"
# Kernel Implementation
"src/main.cpp"
"src/memory/bitmap_allocator.cpp"
- "src/memory/free_list_allocator.cpp"
+ "src/memory/block_list_allocator.cpp"
"src/memory/operators.cpp"
"src/memory.cpp"
)
diff --git a/kernel/include/kernel/memory/free_list_allocator.hpp b/kernel/include/kernel/memory/block_list_allocator.hpp
index 53a7b61..977ce89 100644
--- a/kernel/include/kernel/memory/free_list_allocator.hpp
+++ b/kernel/include/kernel/memory/block_list_allocator.hpp
@@ -1,5 +1,5 @@
-#ifndef TEACHOS_KERNEL_MEMORY_FREE_LIST_ALLOCATOR_HPP
-#define TEACHOS_KERNEL_MEMORY_FREE_LIST_ALLOCATOR_HPP
+#ifndef TEACHOS_KERNEL_MEMORY_BLOCK_LIST_ALLOCATOR_HPP
+#define TEACHOS_KERNEL_MEMORY_BLOCK_LIST_ALLOCATOR_HPP
#include "kapi/memory.hpp"
@@ -17,15 +17,15 @@ namespace kernel::memory
//!
//! This allocator is designed to perform first-fit allocation using an intrusive doubly-linked list. The heap is
//! expanded as needed.
- struct free_list_allocator final : heap_allocator
+ struct block_list_allocator final : heap_allocator
{
//! Construct a new free list allocator with the given base address.
- explicit free_list_allocator(kapi::memory::linear_address base) noexcept;
+ explicit block_list_allocator(kapi::memory::linear_address base) noexcept;
- free_list_allocator(free_list_allocator const &) = delete;
- free_list_allocator(free_list_allocator &&) = delete;
- auto operator=(free_list_allocator const &) -> free_list_allocator & = delete;
- auto operator=(free_list_allocator &&) -> free_list_allocator & = delete;
+ block_list_allocator(block_list_allocator const &) = delete;
+ block_list_allocator(block_list_allocator &&) = delete;
+ auto operator=(block_list_allocator const &) -> block_list_allocator & = delete;
+ auto operator=(block_list_allocator &&) -> block_list_allocator & = delete;
//! Allocate a block of memory with the given alignment.
//!
@@ -70,7 +70,7 @@ namespace kernel::memory
kapi::memory::linear_address m_base;
kapi::memory::linear_address m_frontier;
- block_header * m_free_list;
+ block_header * m_block_list;
kstd::mutex m_lock;
};
diff --git a/kernel/src/memory.cpp b/kernel/src/memory.cpp
index 14bedf1..3bc86f3 100644
--- a/kernel/src/memory.cpp
+++ b/kernel/src/memory.cpp
@@ -3,7 +3,7 @@
#include "kapi/memory.hpp"
#include "kapi/system.hpp"
-#include "kernel/memory/free_list_allocator.hpp"
+#include "kernel/memory/block_list_allocator.hpp"
#include "kernel/memory/heap_allocator.hpp"
#include <atomic>
@@ -31,7 +31,7 @@ namespace kernel::memory
constinit null_allocator null_allocator::instance{};
auto constinit active_heap_allocator = std::optional<heap_allocator *>{&null_allocator::instance};
- auto constinit basic_allocator = std::optional<free_list_allocator>{};
+ auto constinit basic_allocator = std::optional<block_list_allocator>{};
} // namespace
auto get_heap_allocator() -> heap_allocator &
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;