aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/open_file_table.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-03 09:32:30 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-03 09:32:30 +0200
commit3012fa5dfe5dfed5e83baf9b40934ed8e8317627 (patch)
tree00d1c60a3d5d1cdfa55e0ff1691cd3362b6064ee /kernel/src/filesystem/open_file_table.cpp
parent5d8a58d538515ffc57ddf82ba40ba763990a8696 (diff)
downloadkernel-3012fa5dfe5dfed5e83baf9b40934ed8e8317627.tar.xz
kernel-3012fa5dfe5dfed5e83baf9b40934ed8e8317627.zip
kernel: rearrange sources according to p1204
Diffstat (limited to 'kernel/src/filesystem/open_file_table.cpp')
-rw-r--r--kernel/src/filesystem/open_file_table.cpp87
1 files changed, 0 insertions, 87 deletions
diff --git a/kernel/src/filesystem/open_file_table.cpp b/kernel/src/filesystem/open_file_table.cpp
deleted file mode 100644
index 2afe3aa4..00000000
--- a/kernel/src/filesystem/open_file_table.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#include <kernel/filesystem/open_file_table.hpp>
-
-#include <kernel/filesystem/open_file_descriptor.hpp>
-
-#include <kapi/system.hpp>
-
-#include <kstd/memory>
-#include <kstd/unikstd.h>
-
-#include <algorithm>
-#include <cstddef>
-#include <optional>
-
-namespace
-{
- constinit auto static global_open_file_table = std::optional<kernel::filesystem::open_file_table>{};
-} // namespace
-
-namespace kernel::filesystem
-{
- auto open_file_table::init() -> void
- {
- if (global_open_file_table)
- {
- kapi::system::panic("[FILESYSTEM] Open file table has already been initialized.");
- }
-
- global_open_file_table.emplace(open_file_table{});
- }
-
- auto open_file_table::get() -> open_file_table &
- {
- if (!global_open_file_table)
- {
- kapi::system::panic("[FILESYSTEM] Open file table has not been initialized.");
- }
-
- return *global_open_file_table;
- }
-
- auto open_file_table::add_file(kstd::shared_ptr<open_file_descriptor> const & file_descriptor) -> kstd::ssize_t
- {
- if (!file_descriptor)
- {
- return -1;
- }
-
- auto it = std::ranges::find_if(m_open_files, [](auto const & open_file) { return open_file == nullptr; });
- if (it != m_open_files.end())
- {
- *it = file_descriptor;
- return it - m_open_files.begin();
- }
-
- m_open_files.push_back(file_descriptor);
- return m_open_files.size() - 1;
- }
-
- auto open_file_table::file(size_t fd) const -> kstd::shared_ptr<open_file_descriptor>
- {
- if (fd >= m_open_files.size())
- {
- return nullptr;
- }
-
- return m_open_files.at(fd);
- }
-
- auto open_file_table::remove_file(size_t fd) -> kstd::ssize_t
- {
- if (fd >= m_open_files.size())
- {
- return -1;
- }
-
- m_open_files.at(fd) = nullptr;
- return 0;
- }
-} // namespace kernel::filesystem
-
-namespace kernel::tests::filesystem::open_file_table
-{
- auto deinit() -> void
- {
- global_open_file_table.reset();
- }
-} // namespace kernel::tests::filesystem::open_file_table