From de282dbada8a2028ebb4b25aaa0b9bf3d8da3af5 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 20 Aug 2026 17:50:55 +0200 Subject: kernel: remove vfs_type --- kernel/kernel/filesystem/devfs/filesystem.cpp | 3 +-- kernel/kernel/filesystem/devfs/filesystem.hpp | 3 +-- .../kernel/filesystem/devfs/filesystem.tests.cpp | 4 +--- kernel/kernel/filesystem/ext2/filesystem.cpp | 23 ++++++++++------------ kernel/kernel/filesystem/ext2/filesystem.hpp | 6 ++---- kernel/kernel/filesystem/ext2/filesystem.tests.cpp | 21 +++++++++----------- kernel/kernel/filesystem/filesystem.hpp | 5 ++--- kernel/kernel/filesystem/rootfs/filesystem.cpp | 3 +-- kernel/kernel/filesystem/rootfs/filesystem.hpp | 3 +-- .../kernel/filesystem/rootfs/filesystem.tests.cpp | 6 +++--- kernel/kernel/filesystem/vfs.cpp | 11 +++++------ kernel/kernel/filesystem/vfs.hpp | 3 +-- kernel/kernel/filesystem/vfs_types.hpp | 17 ---------------- .../kernel/test_support/filesystem/filesystem.cpp | 4 +--- .../kernel/test_support/filesystem/filesystem.hpp | 3 +-- 15 files changed, 39 insertions(+), 76 deletions(-) delete mode 100644 kernel/kernel/filesystem/vfs_types.hpp (limited to 'kernel') diff --git a/kernel/kernel/filesystem/devfs/filesystem.cpp b/kernel/kernel/filesystem/devfs/filesystem.cpp index cdc3bd1c..f6512999 100644 --- a/kernel/kernel/filesystem/devfs/filesystem.cpp +++ b/kernel/kernel/filesystem/devfs/filesystem.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include @@ -87,7 +86,7 @@ namespace kernel::filesystem::devfs } auto filesystem::create_inode(kstd::shared_ptr const &, std::string_view, - vfs_types::inode_type, std::optional) + kapi::filesystem::file_type, std::optional) -> kstd::result> { return kstd::failure(vfs_errc::read_only_file_system); diff --git a/kernel/kernel/filesystem/devfs/filesystem.hpp b/kernel/kernel/filesystem/devfs/filesystem.hpp index 50a87de9..2b0221d0 100644 --- a/kernel/kernel/filesystem/devfs/filesystem.hpp +++ b/kernel/kernel/filesystem/devfs/filesystem.hpp @@ -5,7 +5,6 @@ #include #include #include -#include #include @@ -39,7 +38,7 @@ namespace kernel::filesystem::devfs //! @copydoc kernel::filesystem::filesystem::create_inode //! @return Always returns an error, as creating new inodes is not supported in devfs. [[nodiscard]] auto create_inode(kstd::shared_ptr const & parent, std::string_view name, - vfs_types::inode_type inode_type, + kapi::filesystem::file_type type, std::optional raw_device = std::nullopt) -> kstd::result> override; diff --git a/kernel/kernel/filesystem/devfs/filesystem.tests.cpp b/kernel/kernel/filesystem/devfs/filesystem.tests.cpp index 28da5275..b5a07a22 100644 --- a/kernel/kernel/filesystem/devfs/filesystem.tests.cpp +++ b/kernel/kernel/filesystem/devfs/filesystem.tests.cpp @@ -1,7 +1,6 @@ #include #include -#include #include #include #include @@ -68,8 +67,7 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, THEN("create_inode always returns an error") { - auto result = - fs->create_inode(fs->root_inode(), "new_device", kernel::filesystem::vfs_types::inode_type::regular); + auto result = fs->create_inode(fs->root_inode(), "new_device", kapi::filesystem::file_type::regular); REQUIRE(!result); } } diff --git a/kernel/kernel/filesystem/ext2/filesystem.cpp b/kernel/kernel/filesystem/ext2/filesystem.cpp index 7a1153e4..52737632 100644 --- a/kernel/kernel/filesystem/ext2/filesystem.cpp +++ b/kernel/kernel/filesystem/ext2/filesystem.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include @@ -172,7 +171,7 @@ namespace kernel::filesystem::ext2 } auto filesystem::create_inode(kstd::shared_ptr const & parent, std::string_view name, - vfs_types::inode_type inode_type, + kapi::filesystem::file_type type, std::optional raw_device) -> kstd::result> { @@ -186,8 +185,7 @@ namespace kernel::filesystem::ext2 return kstd::failure(vfs_errc::not_a_directory); } - auto is_device = inode_type == vfs_types::inode_type::block_device || // - inode_type == vfs_types::inode_type::character_device; + auto is_device = kapi::filesystem::is_device(type); if (is_device && !raw_device) { @@ -211,7 +209,7 @@ namespace kernel::filesystem::ext2 inode_data new_inode_data{}; uint16_t const full_access_mode = 0x01FF; // TODO use correct access rights - new_inode_data.mode = map_vfs_inode_type_into_inode_mode(inode_type, full_access_mode); + new_inode_data.mode = map_vfs_inode_type_into_inode_mode(type, full_access_mode); new_inode_data.size = 0; new_inode_data.dir_acl = 0; new_inode_data.links_count = 1; @@ -744,20 +742,19 @@ namespace kernel::filesystem::ext2 } } - auto filesystem::map_vfs_inode_type_into_inode_mode(kernel::filesystem::vfs_types::inode_type vfs_type, uint16_t mode) - -> uint16_t + auto filesystem::map_vfs_inode_type_into_inode_mode(kapi::filesystem::file_type type, uint16_t mode) -> uint16_t { - switch (vfs_type) + switch (type) { - case kernel::filesystem::vfs_types::inode_type::directory: + case kapi::filesystem::file_type::directory: return mode | constants::mode_directory; - case kernel::filesystem::vfs_types::inode_type::regular: + case kapi::filesystem::file_type::regular: return mode | constants::mode_regular; - case kernel::filesystem::vfs_types::inode_type::block_device: + case kapi::filesystem::file_type::block_device: return mode | constants::mode_block_device; - case kernel::filesystem::vfs_types::inode_type::character_device: + case kapi::filesystem::file_type::character_device: return mode | constants::mode_character_device; - case kernel::filesystem::vfs_types::inode_type::symbolic_link: + case kapi::filesystem::file_type::symbolic_link: // return mode | constants::mode_symbolic_link; // TODO implement default: kapi::system::panic("[EXT2] Not implemented."); diff --git a/kernel/kernel/filesystem/ext2/filesystem.hpp b/kernel/kernel/filesystem/ext2/filesystem.hpp index 6a066f25..7d5490b4 100644 --- a/kernel/kernel/filesystem/ext2/filesystem.hpp +++ b/kernel/kernel/filesystem/ext2/filesystem.hpp @@ -6,7 +6,6 @@ #include #include #include -#include #include @@ -58,7 +57,7 @@ namespace kernel::filesystem::ext2 -> kstd::result> override; [[nodiscard]] auto create_inode(kstd::shared_ptr const & parent, std::string_view name, - vfs_types::inode_type inode_type, + kapi::filesystem::file_type type, std::optional raw_device = std::nullopt) -> kstd::result> override; @@ -164,8 +163,7 @@ namespace kernel::filesystem::ext2 [[nodiscard]] auto write_superblock() const -> kstd::result; auto map_inode_mode_to_file_type(uint16_t mode) -> uint8_t; - auto map_vfs_inode_type_into_inode_mode(kernel::filesystem::vfs_types::inode_type vfs_type, uint16_t mode) - -> uint16_t; + auto map_vfs_inode_type_into_inode_mode(kapi::filesystem::file_type type, uint16_t mode) -> uint16_t; superblock m_superblock{}; kstd::vector m_block_group_descriptors; diff --git a/kernel/kernel/filesystem/ext2/filesystem.tests.cpp b/kernel/kernel/filesystem/ext2/filesystem.tests.cpp index f6ade274..51ba2f30 100644 --- a/kernel/kernel/filesystem/ext2/filesystem.tests.cpp +++ b/kernel/kernel/filesystem/ext2/filesystem.tests.cpp @@ -7,12 +7,13 @@ #include #include #include -#include #include #include #include #include +#include + #include #include #include @@ -104,7 +105,7 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, auto lookup_result = fs.lookup(fs.root_inode(), "blub"); REQUIRE(!lookup_result); - auto new_inode = fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::regular); + auto new_inode = fs.create_inode(fs.root_inode(), "blub", kapi::filesystem::file_type::regular); REQUIRE(new_inode); REQUIRE(new_inode.value()->is_regular()); @@ -117,8 +118,7 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, auto lookup_result = fs.lookup(fs.root_inode(), "blub"); REQUIRE(!lookup_result); - auto new_directory = - fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::directory); + auto new_directory = fs.create_inode(fs.root_inode(), "blub", kapi::filesystem::file_type::directory); REQUIRE(new_directory); REQUIRE(new_directory.value()->is_directory()); @@ -128,12 +128,10 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, THEN("a directory and a file within can be created") { - auto new_directory = - fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::directory); + auto new_directory = fs.create_inode(fs.root_inode(), "blub", kapi::filesystem::file_type::directory); REQUIRE(new_directory); - auto new_file = - fs.create_inode(new_directory.value(), "blub_file", kernel::filesystem::vfs_types::inode_type::regular); + auto new_file = fs.create_inode(new_directory.value(), "blub_file", kapi::filesystem::file_type::regular); REQUIRE(new_file); auto lookup_result = fs.lookup(new_directory.value(), "blub_file"); @@ -143,7 +141,7 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, THEN("a file can be created and written to") { - auto new_inode = fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::regular); + auto new_inode = fs.create_inode(fs.root_inode(), "blub", kapi::filesystem::file_type::regular); REQUIRE(new_inode); auto buffer = @@ -162,9 +160,8 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, THEN("a symbolic link is not implemented yet") { - REQUIRE_THROWS_AS( - fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::symbolic_link), - kernel::tests::cpu::halt); + REQUIRE_THROWS_AS(fs.create_inode(fs.root_inode(), "blub", kapi::filesystem::file_type::symbolic_link), + kernel::tests::cpu::halt); } } } diff --git a/kernel/kernel/filesystem/filesystem.hpp b/kernel/kernel/filesystem/filesystem.hpp index 668fd06e..1a66c11c 100644 --- a/kernel/kernel/filesystem/filesystem.hpp +++ b/kernel/kernel/filesystem/filesystem.hpp @@ -2,7 +2,6 @@ #define TEACHOS_KERNEL_FILESYSTEM_FILESYSTEM_HPP #include -#include #include @@ -58,11 +57,11 @@ namespace kernel::filesystem //! //! @param parent The parent inode. //! @param name The name of the inode to create. - //! @param inode_type The type of inode to be created. + //! @param type The file type of inode to be created. //! @param raw_device The device number the new inode should represent, if any. //! @return A pointer to the created inode on success, an error otherwise. [[nodiscard]] virtual auto create_inode(kstd::shared_ptr const & parent, std::string_view name, - vfs_types::inode_type inode_type, + kapi::filesystem::file_type type, std::optional raw_device = std::nullopt) -> kstd::result> = 0; diff --git a/kernel/kernel/filesystem/rootfs/filesystem.cpp b/kernel/kernel/filesystem/rootfs/filesystem.cpp index ed221c19..56940394 100644 --- a/kernel/kernel/filesystem/rootfs/filesystem.cpp +++ b/kernel/kernel/filesystem/rootfs/filesystem.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include @@ -52,7 +51,7 @@ namespace kernel::filesystem::rootfs } auto filesystem::create_inode(kstd::shared_ptr const &, std::string_view, - vfs_types::inode_type, std::optional) + kapi::filesystem::file_type, std::optional) -> kstd::result> { return kstd::failure(vfs_errc::read_only_file_system); diff --git a/kernel/kernel/filesystem/rootfs/filesystem.hpp b/kernel/kernel/filesystem/rootfs/filesystem.hpp index 75fce634..2a861747 100644 --- a/kernel/kernel/filesystem/rootfs/filesystem.hpp +++ b/kernel/kernel/filesystem/rootfs/filesystem.hpp @@ -3,7 +3,6 @@ #include #include -#include #include @@ -36,7 +35,7 @@ namespace kernel::filesystem::rootfs //! @copydoc kernel::filesystem::filesystem::create_inode. //! @return Always returns an error, as creating new inodes is not supported in rootfs. [[nodiscard]] auto create_inode(kstd::shared_ptr const & parent, std::string_view name, - vfs_types::inode_type inode_type, + kapi::filesystem::file_type type, std::optional raw_device = std::nullopt) -> kstd::result> override; }; diff --git a/kernel/kernel/filesystem/rootfs/filesystem.tests.cpp b/kernel/kernel/filesystem/rootfs/filesystem.tests.cpp index 95fa57db..ba1aab0e 100644 --- a/kernel/kernel/filesystem/rootfs/filesystem.tests.cpp +++ b/kernel/kernel/filesystem/rootfs/filesystem.tests.cpp @@ -1,7 +1,8 @@ #include #include -#include + +#include #include #include @@ -38,8 +39,7 @@ SCENARIO("Rootfs filesystem mount and lookup", "[filesystem][rootfs][filesystem] THEN("create_inode always returns an error") { - auto result = - fs.create_inode(fs.root_inode(), "new_device", kernel::filesystem::vfs_types::inode_type::directory); + auto result = fs.create_inode(fs.root_inode(), "new_device", kapi::filesystem::file_type::directory); REQUIRE(!result); } } diff --git a/kernel/kernel/filesystem/vfs.cpp b/kernel/kernel/filesystem/vfs.cpp index 835cbfd6..5b3d2ebe 100644 --- a/kernel/kernel/filesystem/vfs.cpp +++ b/kernel/kernel/filesystem/vfs.cpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -207,12 +206,12 @@ namespace kernel::filesystem auto vfs::mkdir(std::string_view path) -> kstd::result { - return create_inode(path, vfs_types::inode_type::directory); + return create_inode(path, kapi::filesystem::file_type::directory); } auto vfs::create(std::string_view path) -> kstd::result { - return create_inode(path, vfs_types::inode_type::regular); + return create_inode(path, kapi::filesystem::file_type::regular); } auto vfs::status(std::string_view path) const -> kstd::result @@ -231,17 +230,17 @@ namespace kernel::filesystem { if (kapi::filesystem::is_block_device(mode)) { - return create_inode(path, vfs_types::inode_type::block_device, device); + return create_inode(path, kapi::filesystem::file_type::block_device, device); } else if (kapi::filesystem::is_character_device(mode)) { - return create_inode(path, vfs_types::inode_type::character_device, device); + return create_inode(path, kapi::filesystem::file_type::character_device, device); } return kstd::failure(vfs_errc::invalid_argument); } - auto vfs::create_inode(std::string_view path, vfs_types::inode_type type, + auto vfs::create_inode(std::string_view path, kapi::filesystem::file_type type, std::optional raw_device) -> kstd::result { if (!path::is_valid_path(path)) diff --git a/kernel/kernel/filesystem/vfs.hpp b/kernel/kernel/filesystem/vfs.hpp index f4f5b477..5837f76c 100644 --- a/kernel/kernel/filesystem/vfs.hpp +++ b/kernel/kernel/filesystem/vfs.hpp @@ -7,7 +7,6 @@ #include #include #include -#include #include @@ -118,7 +117,7 @@ namespace kernel::filesystem auto graft_persistent_device_fs(kstd::shared_ptr const & device_fs) -> void; - auto create_inode(std::string_view path, vfs_types::inode_type type, + auto create_inode(std::string_view path, kapi::filesystem::file_type type, std::optional raw_device = std::nullopt) -> kstd::result; mount_table m_mount_table{}; diff --git a/kernel/kernel/filesystem/vfs_types.hpp b/kernel/kernel/filesystem/vfs_types.hpp deleted file mode 100644 index b68e3e33..00000000 --- a/kernel/kernel/filesystem/vfs_types.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef TEACHOS_KERNEL_FILESYSTEM_VFS_TYPES_HPP -#define TEACHOS_KERNEL_FILESYSTEM_VFS_TYPES_HPP - -#include - -namespace kernel::filesystem::vfs_types -{ - enum class inode_type : size_t - { - directory = 0, - regular = 1, - symbolic_link = 2, - block_device = 3, - character_device = 4, - }; -} // namespace kernel::filesystem::vfs_types -#endif \ No newline at end of file diff --git a/kernel/kernel/test_support/filesystem/filesystem.cpp b/kernel/kernel/test_support/filesystem/filesystem.cpp index 3acedd5f..cd08f961 100644 --- a/kernel/kernel/test_support/filesystem/filesystem.cpp +++ b/kernel/kernel/test_support/filesystem/filesystem.cpp @@ -1,7 +1,6 @@ #include #include -#include #include #include @@ -22,8 +21,7 @@ namespace kernel::tests::filesystem } auto filesystem::create_inode(kstd::shared_ptr const &, std::string_view, - kernel::filesystem::vfs_types::inode_type, - std::optional) + kapi::filesystem::file_type, std::optional) -> kstd::result> { return kstd::make_shared(); diff --git a/kernel/kernel/test_support/filesystem/filesystem.hpp b/kernel/kernel/test_support/filesystem/filesystem.hpp index 2b61aea3..7aa14a9f 100644 --- a/kernel/kernel/test_support/filesystem/filesystem.hpp +++ b/kernel/kernel/test_support/filesystem/filesystem.hpp @@ -3,7 +3,6 @@ #include #include -#include #include @@ -24,7 +23,7 @@ namespace kernel::tests::filesystem -> kstd::result> override; [[nodiscard]] auto create_inode(kstd::shared_ptr const & parent, std::string_view name, - kernel::filesystem::vfs_types::inode_type inode_type, + kapi::filesystem::file_type type, std::optional = std::nullopt) -> kstd::result> override; }; -- cgit v1.2.3