aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include
diff options
context:
space:
mode:
authorMatteo Gmür <matteo.gmuer1@ost.ch>2025-05-30 12:48:57 +0000
committerMatteo Gmür <matteo.gmuer1@ost.ch>2025-05-30 12:48:57 +0000
commit9f2e780030e2101d5f7f01f42df805db9a5fa809 (patch)
treebfbcc9ce1c0a4235f15988a03274a14879e5bf73 /arch/x86_64/include
parent3e597ede8079883b3b9d48faf94b8a7bec2a2118 (diff)
downloadteachos-9f2e780030e2101d5f7f01f42df805db9a5fa809.tar.xz
teachos-9f2e780030e2101d5f7f01f42df805db9a5fa809.zip
Clean up files
Diffstat (limited to 'arch/x86_64/include')
-rw-r--r--arch/x86_64/include/arch/memory/allocator/stack_frame_allocator.hpp67
1 files changed, 0 insertions, 67 deletions
diff --git a/arch/x86_64/include/arch/memory/allocator/stack_frame_allocator.hpp b/arch/x86_64/include/arch/memory/allocator/stack_frame_allocator.hpp
deleted file mode 100644
index a8e7233..0000000
--- a/arch/x86_64/include/arch/memory/allocator/stack_frame_allocator.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef TEACHOS_ARCH_X86_64_MEMORY_ALLOCATOR_STACK_FRAME_ALLOCATOR_HPP
-#define TEACHOS_ARCH_X86_64_MEMORY_ALLOCATOR_STACK_FRAME_ALLOCATOR_HPP
-
-#include "arch/memory/allocator/physical_frame.hpp"
-#include "arch/memory/multiboot/reader.hpp"
-#include "arch/stl/stack.hpp"
-
-#include <optional>
-
-namespace teachos::arch::memory::allocator
-{
- /**
- * @brief Uses an internal stack-like dynamic structure to keep track of the address of all avaialable physical frames
- * that are available using the memory areas read from the multiboot2 information pointer and simply pushes
- * deallocated frames back onto the stack. Allows for constant speed O(1) allocation and deallocation
- */
- struct stack_frame_allocator
- {
- /**
- * @brief Constructor
- *
- * @param mem_info Structure containg all relevant information to map and allocate memory
- */
- stack_frame_allocator(multiboot::memory_information const & mem_info);
-
- /**
- * @brief Allocate memory by finding and returning a free physical frame.
- *
- * @return next free physical frame or nullopt if none was found.
- */
- auto allocate_frame() -> std::optional<physical_frame>;
-
- /**
- * @brief Deallocates a previously allocated physical frame.
- *
- * @param physical_frame Previously allocated physical_frame that should be deallocated.
- */
- auto deallocate_frame(physical_frame const & physical_frame) -> void;
-
- private:
- /**
- * @brief Load all initally free physical frames from the current memory area into the underlying stack data
- * structure so they can simply be accessed once required. Recallling the method will load all free physical frames
- * from the next free memory area until there are no memory areas left.
- */
- auto load_free_physical_frames() -> void;
-
- /**
- * @brief Find the next memory area and write it into current_area.
- */
- auto choose_next_area() -> void;
-
- stl::stack<physical_frame> free_frames; ///< All currently free physical frames in a LIFO (last-in, first-out)
- ///< data structure.
- physical_frame next_free_frame; ///< The physical_frame after the last allocated one.
- std::optional<multiboot::memory_area> current_area; ///< The current memory area.
- multiboot::memory_area_container const
- memory_areas; ///< All memory areas in custom container allows to use std::ranges.
- physical_frame const kernel_start; ///< The start address of the kernel code in memory.
- physical_frame const kernel_end; ///< The end address of the kernel code in memory.
- physical_frame const multiboot_start; ///< The start address of the multiboot code in memory.
- physical_frame const multiboot_end; ///< The end address of the multiboot code in memory.
- };
-
-} // namespace teachos::arch::memory::allocator
-
-#endif // TEACHOS_ARCH_X86_64_MEMORY_ALLOCATOR_STACK_FRAME_ALLOCATOR_HPP