diff options
Diffstat (limited to 'kernel/kapi/filesystem.cpp')
| -rw-r--r-- | kernel/kapi/filesystem.cpp | 41 |
1 files changed, 18 insertions, 23 deletions
diff --git a/kernel/kapi/filesystem.cpp b/kernel/kapi/filesystem.cpp index e4b3443a..e50ce2c0 100644 --- a/kernel/kapi/filesystem.cpp +++ b/kernel/kapi/filesystem.cpp @@ -1,10 +1,6 @@ #include <kapi/filesystem.hpp> -#include <kernel/filesystem/byte_offset_file_descriptor.hpp> -#include <kernel/filesystem/directory_file_descriptor.hpp> -#include <kernel/filesystem/open_file_descriptor.hpp> -#include <kernel/filesystem/open_file_table.hpp> -#include <kernel/filesystem/vfs.hpp> +#include <kernel/vfs.hpp> #include <kstd/memory.hpp> #include <kstd/result.hpp> @@ -20,77 +16,76 @@ namespace kapi::filesystem { auto mount(std::string_view source, std::string_view target) -> kstd::result<void> { - return kernel::filesystem::vfs::get().mount(source, target); + return kernel::vfs::vfs::get().mount(source, target); } auto umount(std::string_view target) -> kstd::result<void> { - return kernel::filesystem::vfs::get().unmount(target); + return kernel::vfs::vfs::get().unmount(target); } auto open(std::string_view path) -> kstd::result<std::size_t> { - return kernel::filesystem::vfs::get() + return kernel::vfs::vfs::get() .open(path) - .transform([](auto dentry) -> kstd::shared_ptr<kernel::filesystem::open_file_descriptor> { + .transform([](auto dentry) -> kstd::shared_ptr<kernel::vfs::open_file_descriptor> { if (dentry->inode()->is_directory()) { - return kstd::make_shared<kernel::filesystem::directory_file_descriptor>(dentry); + return kstd::make_shared<kernel::vfs::directory_file_descriptor>(dentry); } - return kstd::make_shared<kernel::filesystem::byte_offset_file_descriptor>(dentry); + return kstd::make_shared<kernel::vfs::byte_offset_file_descriptor>(dentry); }) - .and_then( - [](auto file_descriptor) { return kernel::filesystem::open_file_table::get().add_file(file_descriptor); }); + .and_then([](auto file_descriptor) { return kernel::vfs::open_file_table::get().add_file(file_descriptor); }); } auto close(size_t file_descriptor) -> kstd::result<void> { - return kernel::filesystem::open_file_table::get() + return kernel::vfs::open_file_table::get() .file(file_descriptor) .transform([](auto file) { return file->get_dentry()->absolute_path(); }) - .and_then([](auto path) { return kernel::filesystem::vfs::get().close(path); }) - .and_then([=]() { return kernel::filesystem::open_file_table::get().remove_file(file_descriptor); }); + .and_then([](auto path) { return kernel::vfs::vfs::get().close(path); }) + .and_then([=]() { return kernel::vfs::open_file_table::get().remove_file(file_descriptor); }); } auto read(size_t file_descriptor, std::span<std::byte> buffer) -> kstd::result<kstd::bytes> { - return kernel::filesystem::open_file_table::get().file(file_descriptor).and_then([=](auto descriptor) { + return kernel::vfs::open_file_table::get().file(file_descriptor).and_then([=](auto descriptor) { return descriptor->read(buffer); }); } auto write(size_t file_descriptor, std::span<std::byte const> buffer) -> kstd::result<kstd::bytes> { - return kernel::filesystem::open_file_table::get().file(file_descriptor).and_then([=](auto descriptor) { + return kernel::vfs::open_file_table::get().file(file_descriptor).and_then([=](auto descriptor) { return descriptor->write(buffer); }); } auto seek(size_t file_descriptor, kstd::offset offset, seek_origin origin) -> kstd::result<kstd::bytes> { - return kernel::filesystem::open_file_table::get().file(file_descriptor).and_then([=](auto file) { + return kernel::vfs::open_file_table::get().file(file_descriptor).and_then([=](auto file) { return file->seek(offset, origin); }); } auto mkdir(std::string_view path) -> kstd::result<void> { - return kernel::filesystem::vfs::get().mkdir(path); + return kernel::vfs::vfs::get().mkdir(path); } auto create(std::string_view path) -> kstd::result<void> { - return kernel::filesystem::vfs::get().create(path); + return kernel::vfs::vfs::get().create(path); } auto status(std::string_view path) -> kstd::result<file_status> { - return kernel::filesystem::vfs::get().status(path); + return kernel::vfs::vfs::get().status(path); } auto create_device_node(std::string_view path, file_type type, device_number number) -> kstd::result<void> { - return kernel::filesystem::vfs::get().create_device_node(path, static_cast<std::uint32_t>(type), number); + return kernel::vfs::vfs::get().create_device_node(path, static_cast<std::uint32_t>(type), number); } } // namespace kapi::filesystem
\ No newline at end of file |
