diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-07-03 09:32:30 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-07-03 09:32:30 +0200 |
| commit | 3012fa5dfe5dfed5e83baf9b40934ed8e8317627 (patch) | |
| tree | 00d1c60a3d5d1cdfa55e0ff1691cd3362b6064ee /kernel/src/test_support/kapi | |
| parent | 5d8a58d538515ffc57ddf82ba40ba763990a8696 (diff) | |
| download | kernel-3012fa5dfe5dfed5e83baf9b40934ed8e8317627.tar.xz kernel-3012fa5dfe5dfed5e83baf9b40934ed8e8317627.zip | |
kernel: rearrange sources according to p1204
Diffstat (limited to 'kernel/src/test_support/kapi')
| -rw-r--r-- | kernel/src/test_support/kapi/cio.cpp | 54 | ||||
| -rw-r--r-- | kernel/src/test_support/kapi/cpu.cpp | 52 | ||||
| -rw-r--r-- | kernel/src/test_support/kapi/interrupts.cpp | 11 | ||||
| -rw-r--r-- | kernel/src/test_support/kapi/memory.cpp | 74 |
4 files changed, 0 insertions, 191 deletions
diff --git a/kernel/src/test_support/kapi/cio.cpp b/kernel/src/test_support/kapi/cio.cpp deleted file mode 100644 index 98bc99d7..00000000 --- a/kernel/src/test_support/kapi/cio.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include <kernel/test_support/cio.hpp> - -#include <kernel/test_support/log_buffer.hpp> - -#include <kapi/cio.hpp> - -#include <atomic> -#include <optional> -#include <stdexcept> - -namespace -{ - - auto constinit is_initialized = std::atomic_flag{}; - auto constinit device = std::optional<kernel::tests::cio::output_device>{}; - -} // namespace - -namespace kapi::cio -{ - - auto init() -> void - { - if (is_initialized.test_and_set()) - { - throw std::logic_error("kapi::cio::init() called more than once"); - } - - device.emplace(); - set_output_device(*device); - } - -} // namespace kapi::cio - -namespace kernel::tests::cio -{ - - auto deinit() -> void - { - if (!is_initialized.test()) - { - throw std::logic_error("kapi::cio::deinit() called before kapi::cio::init()"); - } - - device.reset(); - is_initialized.clear(); - } - - auto log_buffer() -> kernel::tests::log_buffer & - { - return device->log_buffer(); - } - -} // namespace kernel::tests::cio
\ No newline at end of file diff --git a/kernel/src/test_support/kapi/cpu.cpp b/kernel/src/test_support/kapi/cpu.cpp deleted file mode 100644 index 5d956331..00000000 --- a/kernel/src/test_support/kapi/cpu.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include <kernel/test_support/cpu.hpp> - -#include <kapi/cpu.hpp> - -#include <atomic> -#include <stdexcept> - -namespace -{ - auto static initialized = std::atomic_flag{}; -} - -namespace kapi::cpu -{ - - auto init() -> void - { - if (initialized.test_and_set()) - { - throw std::logic_error("kapi::cpu::init() called more than once"); - } - - // TODO: make sure that simulated interrupt can run. - } - - auto halt() -> void - { - throw kernel::tests::cpu::halt{}; - } - - auto discover_topology() -> bool - { - // TODO: implement more meaningful simulated CPU topology discovery - return true; - } - -} // namespace kapi::cpu - -namespace kernel::tests::cpu -{ - - auto deinit() -> void - { - if (!initialized.test()) - { - throw std::logic_error{"kapi::cpu::reset() called before kapi::cpu::init()"}; - } - - initialized.clear(); - } - -} // namespace kernel::tests::cpu
\ No newline at end of file diff --git a/kernel/src/test_support/kapi/interrupts.cpp b/kernel/src/test_support/kapi/interrupts.cpp deleted file mode 100644 index 00772669..00000000 --- a/kernel/src/test_support/kapi/interrupts.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include <kapi/interrupts.hpp> - -namespace kapi::interrupts -{ - - auto enable() -> void - { - // TODO: enable simulated interrupts. - } - -} // namespace kapi::interrupts
\ No newline at end of file diff --git a/kernel/src/test_support/kapi/memory.cpp b/kernel/src/test_support/kapi/memory.cpp deleted file mode 100644 index 7fc95cb0..00000000 --- a/kernel/src/test_support/kapi/memory.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include <kapi/memory.hpp> - -#include <kernel/test_support/bump_frame_allocator.hpp> -#include <kernel/test_support/page_mapper.hpp> - -#include <kapi/memory.hpp> - -#include <kstd/units> - -#include <optional> - -namespace -{ - //! The size of the simulated RAM. - constexpr auto physical_size = kstd::units::MiB(32); - constexpr auto virtual_size = kstd::units::GiB(1); - - constexpr auto number_of_frames = physical_size / kapi::memory::frame::size; - - auto constinit bump_allocator = std::optional<kernel::tests::bump_frame_allocator>{}; - auto constinit test_mapper = std::optional<kernel::tests::page_mapper>{}; - - auto constinit old_allocator = std::optional<kapi::memory::frame_allocator *>{}; - auto constinit old_mapper = std::optional<kapi::memory::page_mapper *>{}; - - auto handoff_to_kernel_pmm(kapi::memory::frame_allocator & new_allocator) -> void - { - auto first_free_frame = bump_allocator->next_free_frame; - auto number_of_free_frames = number_of_frames - first_free_frame; - new_allocator.release_many({kapi::memory::frame{first_free_frame}, number_of_free_frames}); - } - -} // namespace - -namespace kapi::memory -{ - - auto init() -> void - { - bump_allocator.emplace(); - test_mapper.emplace(physical_size, virtual_size); - - old_allocator = set_frame_allocator(*bump_allocator); - old_mapper = set_page_mapper(*test_mapper); - - init_pmm(physical_size / frame::size, handoff_to_kernel_pmm); - } -} // namespace kapi::memory - -namespace kernel::tests::memory -{ - - auto deinit() -> void - { - if (old_allocator && *old_allocator) - { - set_frame_allocator(**old_allocator); - } - - if (old_mapper && *old_mapper) - { - set_page_mapper(**old_mapper); - } - - bump_allocator.reset(); - test_mapper.reset(); - } - - auto virtual_base() -> kapi::memory::linear_address - { - return test_mapper->memory.virtual_base(); - } - -} // namespace kernel::tests::memory
\ No newline at end of file |
