From 3012fa5dfe5dfed5e83baf9b40934ed8e8317627 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 3 Jul 2026 09:32:30 +0200 Subject: kernel: rearrange sources according to p1204 --- kernel/src/filesystem/devfs/filesystem.cpp | 81 ------------------------ kernel/src/filesystem/devfs/filesystem.tests.cpp | 72 --------------------- kernel/src/filesystem/devfs/inode.cpp | 21 ------ kernel/src/filesystem/devfs/inode.tests.cpp | 55 ---------------- 4 files changed, 229 deletions(-) delete mode 100644 kernel/src/filesystem/devfs/filesystem.cpp delete mode 100644 kernel/src/filesystem/devfs/filesystem.tests.cpp delete mode 100644 kernel/src/filesystem/devfs/inode.cpp delete mode 100644 kernel/src/filesystem/devfs/inode.tests.cpp (limited to 'kernel/src/filesystem/devfs') diff --git a/kernel/src/filesystem/devfs/filesystem.cpp b/kernel/src/filesystem/devfs/filesystem.cpp deleted file mode 100644 index ce887ff3..00000000 --- a/kernel/src/filesystem/devfs/filesystem.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include - -#include "kernel/filesystem/filesystem.hpp" -#include -#include -#include -#include -#include - -#include - -#include - -#include -#include - -namespace kernel::filesystem::devfs -{ - struct type final : kernel::filesystem::type - { - [[nodiscard]] auto name() const noexcept -> std::string_view override - { - return "devfs"; - } - - [[nodiscard]] auto requires_device() const noexcept -> bool override - { - return false; - } - - [[nodiscard]] auto make_instance() const -> kstd::shared_ptr override - { - return kstd::make_shared(); - } - }; - - [[gnu::used]] - constexpr auto registration = type_registration{}; - - auto filesystem::mount(kstd::shared_ptr const &) -> operation_result - { - m_root_inode = kstd::make_shared(); - build_device_inode_table(); - - return operation_result::success; - } - - auto filesystem::lookup(kstd::shared_ptr const & parent, std::string_view name) const - -> kstd::shared_ptr - { - if (!parent || !parent->is_directory()) - { - return nullptr; - } - - if (parent.get() != m_root_inode.get()) - { - return nullptr; - } - - auto it = std::ranges::find_if(m_inodes, [&](auto const & dev_node) { - if (auto device_inode_ptr = static_cast(dev_node.get())) - { - return device_inode_ptr->device()->name() == name; - } - return false; - }); - return (it != m_inodes.end()) ? *it : nullptr; - } - - auto filesystem::build_device_inode_table() -> void - { - m_inodes.clear(); - - auto storage_mgmt = devices::storage::management::get(); - std::ranges::for_each(storage_mgmt.all_controllers(), [&](auto const & controller) { - std::ranges::for_each(controller->all_devices(), - [&](auto const & device) { m_inodes.push_back(kstd::make_shared(device)); }); - }); - } -} // namespace kernel::filesystem::devfs \ No newline at end of file diff --git a/kernel/src/filesystem/devfs/filesystem.tests.cpp b/kernel/src/filesystem/devfs/filesystem.tests.cpp deleted file mode 100644 index 36cb4117..00000000 --- a/kernel/src/filesystem/devfs/filesystem.tests.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include - -#include -#include - -#include - -SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, - "Devfs filesystem lookup uses storage management devices", "[filesystem][devfs][filesystem]") -{ - GIVEN("a boot module registry with one module") - { - setup_modules(1); - - auto fs = kernel::filesystem::devfs::filesystem{}; - auto result = fs.mount(nullptr); - - THEN("mount succeeds") - { - REQUIRE(result == kernel::filesystem::filesystem::operation_result::success); - REQUIRE(fs.root_inode() != nullptr); - } - - THEN("lookup on root finds ram0 device inode") - { - auto inode = fs.lookup(fs.root_inode(), "ram0"); - REQUIRE(inode != nullptr); - REQUIRE(inode->is_device()); - } - - THEN("lookup of an unknown device returns null") - { - auto inode = fs.lookup(fs.root_inode(), "ram99"); - REQUIRE(inode == nullptr); - } - - THEN("lookup with wrong parent returns null") - { - auto other_fs = kernel::filesystem::devfs::filesystem{}; - other_fs.mount(nullptr); - - auto inode = fs.lookup(other_fs.root_inode(), "ram0"); - REQUIRE(inode == nullptr); - } - - THEN("lookup with a non-directory parent returns null") - { - auto non_directory_inode = fs.lookup(fs.root_inode(), "ram0"); - REQUIRE(non_directory_inode != nullptr); - REQUIRE_FALSE(non_directory_inode->is_directory()); - - auto result = fs.lookup(non_directory_inode, "anything"); - REQUIRE(result == nullptr); - } - } - - GIVEN("a boot module registry with three modules") - { - setup_modules(3, 2048); - - auto fs = kernel::filesystem::devfs::filesystem{}; - auto result = fs.mount(nullptr); - REQUIRE(result == kernel::filesystem::filesystem::operation_result::success); - - THEN("lookup finds all generated RAM devices") - { - REQUIRE(fs.lookup(fs.root_inode(), "ram0") != nullptr); - REQUIRE(fs.lookup(fs.root_inode(), "ram16") != nullptr); - REQUIRE(fs.lookup(fs.root_inode(), "ram32") != nullptr); - } - } -} diff --git a/kernel/src/filesystem/devfs/inode.cpp b/kernel/src/filesystem/devfs/inode.cpp deleted file mode 100644 index 7bbfbbed..00000000 --- a/kernel/src/filesystem/devfs/inode.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include - -#include - -namespace kernel::filesystem::devfs -{ - auto inode::read(void *, size_t, size_t) const -> size_t - { - return 0; - } - - auto inode::write(void const *, size_t, size_t) -> size_t - { - return 0; - } - - auto inode::is_directory() const -> bool - { - return true; - } -} // namespace kernel::filesystem::devfs \ No newline at end of file diff --git a/kernel/src/filesystem/devfs/inode.tests.cpp b/kernel/src/filesystem/devfs/inode.tests.cpp deleted file mode 100644 index ae26e742..00000000 --- a/kernel/src/filesystem/devfs/inode.tests.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include - -#include -#include -#include - -#include - -#include - -SCENARIO("Devfs inode creation", "[filesystem][devfs][inode]") -{ - GIVEN("a devfs inode") - { - auto inode = kernel::filesystem::devfs::inode{}; - - THEN("the inode has the correct kind") - { - REQUIRE(inode.is_directory()); - REQUIRE_FALSE(inode.is_device()); - REQUIRE_FALSE(inode.is_regular()); - REQUIRE_FALSE(inode.is_symbolic_link()); - } - } -} - -SCENARIO("Devfs inode read/write", "[filesystem][devfs][inode]") -{ - GIVEN("a devfs inode") - { - auto inode = kernel::filesystem::devfs::inode{}; - - WHEN("attempting to read from the devfs inode") - { - kstd::vector buffer(512); - auto bytes_read = inode.read(buffer.data(), 0, buffer.size()); - - THEN("no bytes are read") - { - REQUIRE(bytes_read == 0); - } - } - - WHEN("attempting to write to the devfs inode") - { - kstd::vector buffer(512); - auto bytes_written = inode.write(buffer.data(), 0, buffer.size()); - - THEN("no bytes are written") - { - REQUIRE(bytes_written == 0); - } - } - } -} -- cgit v1.2.3