aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi/filesystem.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-12 15:24:40 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-12 15:24:40 +0200
commitf54e09351a967da21f863fd2d3b17ffd24d3ee87 (patch)
tree8577f5e19a48f928411ba2b9bb65f34b01725e8a /kernel/kapi/filesystem.cpp
parent3aa2680cca25ba5f2e490a601461e09c3f081e3e (diff)
downloadkernel-f54e09351a967da21f863fd2d3b17ffd24d3ee87.tar.xz
kernel-f54e09351a967da21f863fd2d3b17ffd24d3ee87.zip
kernel: integrate kstd system_error facility
Diffstat (limited to 'kernel/kapi/filesystem.cpp')
-rw-r--r--kernel/kapi/filesystem.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/kernel/kapi/filesystem.cpp b/kernel/kapi/filesystem.cpp
index 4880ae38..24a3adf3 100644
--- a/kernel/kapi/filesystem.cpp
+++ b/kernel/kapi/filesystem.cpp
@@ -5,9 +5,11 @@
#include <kernel/filesystem/vfs.hpp>
#include <kstd/memory.hpp>
+#include <kstd/system_error.hpp>
#include <kstd/unikstd.h>
#include <cstddef>
+#include <expected>
#include <string_view>
namespace kapi::filesystem
@@ -30,15 +32,12 @@ namespace kapi::filesystem
return -1;
}
- auto open(std::string_view path) -> kstd::ssize_t
+ auto open(std::string_view path) -> std::expected<std::size_t, kstd::error_code>
{
- if (auto dentry = kernel::filesystem::vfs::get().open(path))
- {
+ return kernel::filesystem::vfs::get().open(path).transform([](auto dentry) {
auto open_file_descriptor = kstd::make_shared<kernel::filesystem::open_file_descriptor>(dentry);
return kernel::filesystem::open_file_table::get().add_file(open_file_descriptor);
- }
-
- return -1;
+ });
}
auto close(size_t file_descriptor) -> kstd::ssize_t