aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/CMakeLists.txt4
-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.hpp10
-rw-r--r--kernel/kapi/filesystem.cpp10
-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.cpp10
-rw-r--r--kernel/src/test_support/state_reset_listener.cpp8
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();