diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-07-12 15:24:40 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-07-12 15:24:40 +0200 |
| commit | f54e09351a967da21f863fd2d3b17ffd24d3ee87 (patch) | |
| tree | 8577f5e19a48f928411ba2b9bb65f34b01725e8a /kernel/kapi/filesystem.cpp | |
| parent | 3aa2680cca25ba5f2e490a601461e09c3f081e3e (diff) | |
| download | kernel-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.cpp | 11 |
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 |
