diff options
| -rw-r--r-- | kernel/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | kernel/include/kernel/filesystem/open_file_table.hpp (renamed from kernel/include/kernel/filesystem/file_descriptor_table.hpp) | 29 | ||||
| -rw-r--r-- | kernel/include/kernel/test_support/filesystem/file_descriptor_table.hpp | 10 | ||||
| -rw-r--r-- | kernel/kapi/filesystem.cpp | 10 | ||||
| -rw-r--r-- | kernel/src/filesystem/open_file_table.cpp (renamed from kernel/src/filesystem/file_descriptor_table.cpp) | 32 | ||||
| -rw-r--r-- | kernel/src/filesystem/open_file_table.tests.cpp (renamed from kernel/src/filesystem/file_descriptor_table.tests.cpp) | 20 | ||||
| -rw-r--r-- | kernel/src/main.cpp | 10 | ||||
| -rw-r--r-- | kernel/src/test_support/state_reset_listener.cpp | 8 |
8 files changed, 61 insertions, 62 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index cddec97..909ccf7 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -47,12 +47,12 @@ target_sources("kernel_lib" PRIVATE # Filesystem Subsystem "src/filesystem/dentry.cpp" "src/filesystem/device_inode.cpp" - "src/filesystem/file_descriptor_table.cpp" "src/filesystem/filesystem.cpp" "src/filesystem/inode.cpp" "src/filesystem/mount_table.cpp" "src/filesystem/mount.cpp" "src/filesystem/open_file_descriptor.cpp" + "src/filesystem/open_file_table.cpp" "src/filesystem/vfs.cpp" # DevFS Filesystem @@ -192,10 +192,10 @@ if(BUILD_TESTING) "src/filesystem/rootfs/inode.tests.cpp" "src/filesystem/dentry.tests.cpp" "src/filesystem/device_inode.tests.cpp" - "src/filesystem/file_descriptor_table.tests.cpp" "src/filesystem/mount_table.tests.cpp" "src/filesystem/mount.tests.cpp" "src/filesystem/open_file_descriptor.tests.cpp" + "src/filesystem/open_file_table.tests.cpp" "src/filesystem/vfs.tests.cpp" # Storage Subsystem Tests diff --git a/kernel/include/kernel/filesystem/file_descriptor_table.hpp b/kernel/include/kernel/filesystem/open_file_table.hpp index b0e699b..2f9a421 100644 --- a/kernel/include/kernel/filesystem/file_descriptor_table.hpp +++ b/kernel/include/kernel/filesystem/open_file_table.hpp @@ -1,5 +1,5 @@ -#ifndef TEACH_OS_KERNEL_FILESYSTEM_FILE_DESCRIPTOR_TABLE_HPP -#define TEACH_OS_KERNEL_FILESYSTEM_FILE_DESCRIPTOR_TABLE_HPP +#ifndef TEACH_OS_KERNEL_FILESYSTEM_OPEN_FILE_TABLE_HPP +#define TEACH_OS_KERNEL_FILESYSTEM_OPEN_FILE_TABLE_HPP #include <kernel/filesystem/open_file_descriptor.hpp> @@ -12,50 +12,49 @@ namespace kernel::filesystem @brief A table for managing file descriptors in the filesystem. This class provides methods for adding, retrieving, and removing open file descriptors. */ - struct file_descriptor_table + struct open_file_table { /** - @brief Initialize the global file descriptor table. This method creates the singleton instance of the file - descriptor table. + @brief Initialize the global open file table. This method creates the singleton instance of the open file table. @warning Panics if called more than once. */ auto static init() -> void; /** - @brief Get the global file descriptor table instance. - @return A reference to the global file descriptor table. - @warning Panics if the file descriptor table has not been initialized. + @brief Get the global open file table instance. + @return A reference to the global open file table. + @warning Panics if the open file table has not been initialized. */ - auto static get() -> file_descriptor_table &; + auto static get() -> open_file_table &; /** - @brief Destructor for the file descriptor table. + @brief Destructor for the open file table. */ - ~file_descriptor_table() = default; + ~open_file_table() = default; /** - @brief Add a file to the descriptor table. + @brief Add a file to the open file table. @param f The file descriptor to add. @return The file descriptor index assigned to the file, or -1 on failure. */ auto add_file(kstd::shared_ptr<open_file_descriptor> const & f) -> int; /** - @brief Get a file from the descriptor table. + @brief Get a file from the open file table. @param fd The file descriptor index to retrieve. @return A pointer to the requested file descriptor, or a null pointer if not found. */ [[nodiscard]] auto get_file(int fd) const -> kstd::shared_ptr<open_file_descriptor>; /** - @brief Remove a file from the descriptor table. + @brief Remove a file from the open file table. @param fd The file descriptor index to remove. @return 0 on success, or -1 on failure. */ auto remove_file(int fd) -> int; private: - file_descriptor_table() = default; + open_file_table() = default; kstd::vector<kstd::shared_ptr<open_file_descriptor>> m_open_files{}; }; diff --git a/kernel/include/kernel/test_support/filesystem/file_descriptor_table.hpp b/kernel/include/kernel/test_support/filesystem/file_descriptor_table.hpp index bbc0f4a..46b0334 100644 --- a/kernel/include/kernel/test_support/filesystem/file_descriptor_table.hpp +++ b/kernel/include/kernel/test_support/filesystem/file_descriptor_table.hpp @@ -1,10 +1,10 @@ -#ifndef TEACHOS_KERNEL_TEST_SUPPORT_FILESYSTEM_FILE_DESCRIPTOR_TABLE_HPP -#define TEACHOS_KERNEL_TEST_SUPPORT_FILESYSTEM_FILE_DESCRIPTOR_TABLE_HPP +#ifndef TEACHOS_KERNEL_TEST_SUPPORT_FILESYSTEM_OPEN_FILE_TABLE_HPP +#define TEACHOS_KERNEL_TEST_SUPPORT_FILESYSTEM_OPEN_FILE_TABLE_HPP -namespace kernel::tests::filesystem::file_descriptor_table +namespace kernel::tests::filesystem::open_file_table { - //! Deinitialize the file descriptor table singleton. + //! Deinitialize the open file table singleton. auto deinit() -> void; -} // namespace kernel::tests::filesystem::file_descriptor_table +} // namespace kernel::tests::filesystem::open_file_table #endif
\ No newline at end of file diff --git a/kernel/kapi/filesystem.cpp b/kernel/kapi/filesystem.cpp index 8481f20..4c68f28 100644 --- a/kernel/kapi/filesystem.cpp +++ b/kernel/kapi/filesystem.cpp @@ -1,7 +1,7 @@ #include <kapi/filesystem.hpp> -#include <kernel/filesystem/file_descriptor_table.hpp> #include <kernel/filesystem/open_file_descriptor.hpp> +#include <kernel/filesystem/open_file_table.hpp> #include <kernel/filesystem/vfs.hpp> #include <kstd/memory> @@ -36,7 +36,7 @@ namespace kapi::filesystem if (auto dentry = kernel::filesystem::vfs::get().open(path)) { auto open_file_descriptor = kstd::make_shared<kernel::filesystem::open_file_descriptor>(dentry->get_inode()); - return kernel::filesystem::file_descriptor_table::get().add_file(open_file_descriptor); + return kernel::filesystem::open_file_table::get().add_file(open_file_descriptor); } return -1; @@ -44,12 +44,12 @@ namespace kapi::filesystem auto close(int file_descriptor) -> int { - return kernel::filesystem::file_descriptor_table::get().remove_file(file_descriptor); + return kernel::filesystem::open_file_table::get().remove_file(file_descriptor); } auto read(int file_descriptor, void * buffer, size_t size) -> ssize_t { - if (auto open_file_descriptor = kernel::filesystem::file_descriptor_table::get().get_file(file_descriptor)) + if (auto open_file_descriptor = kernel::filesystem::open_file_table::get().get_file(file_descriptor)) { return open_file_descriptor->read(buffer, size); } @@ -59,7 +59,7 @@ namespace kapi::filesystem auto write(int file_descriptor, void const * buffer, size_t size) -> ssize_t { - if (auto open_file_descriptor = kernel::filesystem::file_descriptor_table::get().get_file(file_descriptor)) + if (auto open_file_descriptor = kernel::filesystem::open_file_table::get().get_file(file_descriptor)) { return open_file_descriptor->write(buffer, size); } diff --git a/kernel/src/filesystem/file_descriptor_table.cpp b/kernel/src/filesystem/open_file_table.cpp index 9361f37..e47d229 100644 --- a/kernel/src/filesystem/file_descriptor_table.cpp +++ b/kernel/src/filesystem/open_file_table.cpp @@ -1,4 +1,4 @@ -#include <kernel/filesystem/file_descriptor_table.hpp> +#include <kernel/filesystem/open_file_table.hpp> #include <kernel/filesystem/open_file_descriptor.hpp> @@ -12,32 +12,32 @@ namespace { - constinit auto static global_file_descriptor_table = std::optional<kernel::filesystem::file_descriptor_table>{}; + constinit auto static global_open_file_table = std::optional<kernel::filesystem::open_file_table>{}; } // namespace namespace kernel::filesystem { - auto file_descriptor_table::init() -> void + auto open_file_table::init() -> void { - if (global_file_descriptor_table) + if (global_open_file_table) { - kapi::system::panic("[FILESYSTEM] File descriptor table has already been initialized."); + kapi::system::panic("[FILESYSTEM] Open file table has already been initialized."); } - global_file_descriptor_table.emplace(file_descriptor_table{}); + global_open_file_table.emplace(open_file_table{}); } - auto file_descriptor_table::get() -> file_descriptor_table & + auto open_file_table::get() -> open_file_table & { - if (!global_file_descriptor_table) + if (!global_open_file_table) { - kapi::system::panic("[FILESYSTEM] File descriptor table has not been initialized."); + kapi::system::panic("[FILESYSTEM] Open file table has not been initialized."); } - return *global_file_descriptor_table; + return *global_open_file_table; } - auto file_descriptor_table::add_file(kstd::shared_ptr<open_file_descriptor> const & file_descriptor) -> int + auto open_file_table::add_file(kstd::shared_ptr<open_file_descriptor> const & file_descriptor) -> int { if (!file_descriptor) { @@ -55,7 +55,7 @@ namespace kernel::filesystem return static_cast<int>(m_open_files.size() - 1); } - auto file_descriptor_table::get_file(int fd) const -> kstd::shared_ptr<open_file_descriptor> + auto open_file_table::get_file(int fd) const -> kstd::shared_ptr<open_file_descriptor> { if (fd < 0) { @@ -71,7 +71,7 @@ namespace kernel::filesystem return m_open_files.at(index); } - auto file_descriptor_table::remove_file(int fd) -> int + auto open_file_table::remove_file(int fd) -> int { if (fd < 0) { @@ -89,10 +89,10 @@ namespace kernel::filesystem } } // namespace kernel::filesystem -namespace kernel::tests::filesystem::file_descriptor_table +namespace kernel::tests::filesystem::open_file_table { auto deinit() -> void { - global_file_descriptor_table.reset(); + global_open_file_table.reset(); } -} // namespace kernel::tests::filesystem::file_descriptor_table +} // namespace kernel::tests::filesystem::open_file_table diff --git a/kernel/src/filesystem/file_descriptor_table.tests.cpp b/kernel/src/filesystem/open_file_table.tests.cpp index dd04e00..a5c791d 100644 --- a/kernel/src/filesystem/file_descriptor_table.tests.cpp +++ b/kernel/src/filesystem/open_file_table.tests.cpp @@ -1,4 +1,4 @@ -#include <kernel/filesystem/file_descriptor_table.hpp> +#include <kernel/filesystem/open_file_table.hpp> #include <kernel/filesystem/open_file_descriptor.hpp> #include <kernel/test_support/filesystem/inode.hpp> @@ -9,16 +9,16 @@ #include <catch2/catch_test_macros.hpp> -SCENARIO("File descriptor table add/get file", "[filesystem][file_descriptor_table]") +SCENARIO("Open file table add/get file", "[filesystem][open_file_table]") { - GIVEN("a file descriptor table and an open file descriptor") + GIVEN("a open file table and an open file descriptor") { - auto & table = kernel::filesystem::file_descriptor_table::get(); + auto & table = kernel::filesystem::open_file_table::get(); auto inode = kstd::make_shared<kernel::tests::filesystem::inode>(); auto file_descriptor_1 = kstd::make_shared<kernel::filesystem::open_file_descriptor>(inode); auto file_descriptor_2 = kstd::make_shared<kernel::filesystem::open_file_descriptor>(inode); - WHEN("adding the open file descriptor to the file descriptor table") + WHEN("adding the open file descriptor to the open file table") { auto fd_1 = table.add_file(file_descriptor_1); auto fd_2 = table.add_file(file_descriptor_2); @@ -41,7 +41,7 @@ SCENARIO("File descriptor table add/get file", "[filesystem][file_descriptor_tab GIVEN("a invalid open file descriptor") { - auto & table = kernel::filesystem::file_descriptor_table::get(); + auto & table = kernel::filesystem::open_file_table::get(); THEN("adding a null file descriptor returns an error code") { @@ -63,11 +63,11 @@ SCENARIO("File descriptor table add/get file", "[filesystem][file_descriptor_tab } } -SCENARIO("File descriptor table remove file", "[filesystem][file_descriptor_table]") +SCENARIO("Open file table remove file", "[filesystem][open_file_table]") { - GIVEN("a file descriptor table with an open file descriptor") + GIVEN("a open file table with an open file descriptor") { - auto & table = kernel::filesystem::file_descriptor_table::get(); + auto & table = kernel::filesystem::open_file_table::get(); auto inode = kstd::make_shared<kernel::tests::filesystem::inode>(); auto file_descriptor = kstd::make_shared<kernel::filesystem::open_file_descriptor>(inode); auto fd = table.add_file(file_descriptor); @@ -98,7 +98,7 @@ SCENARIO("File descriptor table remove file", "[filesystem][file_descriptor_tabl GIVEN("an invalid file descriptor") { - auto & table = kernel::filesystem::file_descriptor_table::get(); + auto & table = kernel::filesystem::open_file_table::get(); THEN("removing a file with a negative file descriptor does nothing") { diff --git a/kernel/src/main.cpp b/kernel/src/main.cpp index 9878d20..ffea979 100644 --- a/kernel/src/main.cpp +++ b/kernel/src/main.cpp @@ -1,7 +1,7 @@ #include <kernel/devices/storage/management.hpp> #include <kernel/filesystem/device_inode.hpp> -#include <kernel/filesystem/file_descriptor_table.hpp> #include <kernel/filesystem/open_file_descriptor.hpp> +#include <kernel/filesystem/open_file_table.hpp> #include <kernel/filesystem/vfs.hpp> #include <kernel/memory.hpp> @@ -39,7 +39,7 @@ auto test_device_names() -> void auto test_file_descriptor_manually() -> void { // setup - auto fd_table = kernel::filesystem::file_descriptor_table::get(); + auto fd_table = kernel::filesystem::open_file_table::get(); auto storage_mgmt = kernel::devices::storage::management::get(); auto device = storage_mgmt.device_by_major_minor(1, 0); @@ -95,7 +95,7 @@ auto test_device_with_vfs() -> void kstd::os::panic("test code failed"); } - auto fd_table = kernel::filesystem::file_descriptor_table::get(); + auto fd_table = kernel::filesystem::open_file_table::get(); auto ofd = kstd::make_shared<kernel::filesystem::open_file_descriptor>(dentry->get_inode()); auto fd = fd_table.add_file(ofd); kstd::vector<std::byte> buffer{2}; @@ -274,8 +274,8 @@ auto main() -> int kernel::devices::storage::management::init(); kstd::println("[OS] Storage management initialized."); - kernel::filesystem::file_descriptor_table::init(); - kstd::println("[OS] Global file descriptor table initialized."); + kernel::filesystem::open_file_table::init(); + kstd::println("[OS] Global open file table initialized."); kernel::filesystem::vfs::init(); kstd::println("[OS] Virtual filesystem initialized."); diff --git a/kernel/src/test_support/state_reset_listener.cpp b/kernel/src/test_support/state_reset_listener.cpp index 1815110..6bb7537 100644 --- a/kernel/src/test_support/state_reset_listener.cpp +++ b/kernel/src/test_support/state_reset_listener.cpp @@ -1,9 +1,9 @@ -#include <kernel/filesystem/file_descriptor_table.hpp> +#include <kernel/filesystem/open_file_table.hpp> #include <kernel/test_support/boot_modules.hpp> #include <kernel/test_support/cio.hpp> #include <kernel/test_support/cpu.hpp> #include <kernel/test_support/devices/storage/management.hpp> -#include <kernel/test_support/filesystem/file_descriptor_table.hpp> +#include <kernel/test_support/filesystem/open_file_table.hpp> #include <kernel/test_support/filesystem/vfs.hpp> #include <kernel/test_support/memory.hpp> @@ -22,7 +22,7 @@ struct state_reset_listener : Catch::EventListenerBase void testCaseStarting(Catch::TestCaseInfo const &) override { - kernel::filesystem::file_descriptor_table::init(); + kernel::filesystem::open_file_table::init(); kapi::cio::init(); kapi::cpu::init(); @@ -31,7 +31,7 @@ struct state_reset_listener : Catch::EventListenerBase void testCaseEnded(Catch::TestCaseStats const &) override { - kernel::tests::filesystem::file_descriptor_table::deinit(); + kernel::tests::filesystem::open_file_table::deinit(); kernel::tests::filesystem::vfs::deinit(); kernel::tests::boot_modules::deinit(); kernel::tests::devices::storage::management::deinit(); |
