diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kernel/filesystem/vfs.cpp | 14 | ||||
| -rw-r--r-- | kernel/kernel/filesystem/vfs.hpp | 19 |
2 files changed, 16 insertions, 17 deletions
diff --git a/kernel/kernel/filesystem/vfs.cpp b/kernel/kernel/filesystem/vfs.cpp index c38e19d7..40f2c3aa 100644 --- a/kernel/kernel/filesystem/vfs.cpp +++ b/kernel/kernel/filesystem/vfs.cpp @@ -88,7 +88,7 @@ namespace kernel::filesystem return *active_vfs; } - auto vfs::open(std::string_view path) -> std::expected<kstd::shared_ptr<dentry>, kstd::error_code> + auto vfs::open(std::string_view path) -> std::expected<dentry_ptr, kstd::error_code> { auto resolved_path = resolve_path_internal(path); if (!resolved_path) @@ -170,10 +170,8 @@ namespace kernel::filesystem return std::unexpected{vfs_errc::unmount_failed}; } - auto vfs::do_mount_internal(kstd::shared_ptr<dentry> const & mount_point_dentry, - kstd::shared_ptr<struct mount> const & parent_mount, - kstd::shared_ptr<filesystem> const & fs, - kstd::shared_ptr<struct mount> const & source_mount) -> void + auto vfs::do_mount_internal(dentry_ptr const & mount_point_dentry, mount_ptr const & parent_mount, fs_ptr const & fs, + mount_ptr const & source_mount) -> void { auto new_fs_root = kstd::make_shared<dentry>(mount_point_dentry->parent(), fs->root_inode(), mount_point_dentry->name()); @@ -198,7 +196,7 @@ namespace kernel::filesystem } auto vfs::resolve_path_internal(std::string_view path) const - -> std::expected<std::pair<kstd::shared_ptr<dentry>, kstd::shared_ptr<struct mount>>, kstd::error_code> + -> std::expected<std::pair<dentry_ptr, mount_ptr>, kstd::error_code> { if (!path::is_valid_absolute_path(path)) { @@ -310,12 +308,12 @@ namespace kernel::filesystem return std::pair{current_dentry, current_mount}; } - auto vfs::resolve_path(std::string_view path) const -> std::expected<kstd::shared_ptr<dentry>, kstd::error_code> + auto vfs::resolve_path(std::string_view path) const -> std::expected<dentry_ptr, kstd::error_code> { return resolve_path_internal(path).transform([](auto result) { return result.first; }); } - auto vfs::find_mount(std::string_view path) const -> std::expected<kstd::shared_ptr<struct mount>, kstd::error_code> + auto vfs::find_mount(std::string_view path) const -> std::expected<mount_ptr, kstd::error_code> { return resolve_path_internal(path).transform([](auto result) { return result.second; }); } diff --git a/kernel/kernel/filesystem/vfs.hpp b/kernel/kernel/filesystem/vfs.hpp index f3f94e81..2645fe14 100644 --- a/kernel/kernel/filesystem/vfs.hpp +++ b/kernel/kernel/filesystem/vfs.hpp @@ -24,6 +24,10 @@ namespace kernel::filesystem */ struct vfs { + using dentry_ptr = kstd::shared_ptr<dentry>; + using mount_ptr = kstd::shared_ptr<struct mount>; + using fs_ptr = kstd::shared_ptr<filesystem>; + vfs(); /** @@ -49,7 +53,7 @@ namespace kernel::filesystem @param path The path to the file to open. @return A shared pointer to the dentry on success or an error code on failure. */ - auto open(std::string_view path) -> std::expected<kstd::shared_ptr<dentry>, kstd::error_code>; + auto open(std::string_view path) -> std::expected<dentry_ptr, kstd::error_code>; /** @brief Close a file by its associated @p path. @@ -85,17 +89,14 @@ namespace kernel::filesystem * - find_mount() for the mount context only. */ [[nodiscard]] auto resolve_path_internal(std::string_view path) const - -> std::expected<std::pair<kstd::shared_ptr<dentry>, kstd::shared_ptr<struct mount>>, kstd::error_code>; + -> std::expected<std::pair<dentry_ptr, mount_ptr>, kstd::error_code>; - [[nodiscard]] auto resolve_path(std::string_view path) const - -> std::expected<kstd::shared_ptr<dentry>, kstd::error_code>; + [[nodiscard]] auto resolve_path(std::string_view path) const -> std::expected<dentry_ptr, kstd::error_code>; - [[nodiscard]] auto find_mount(std::string_view path) const - -> std::expected<kstd::shared_ptr<struct mount>, kstd::error_code>; + [[nodiscard]] auto find_mount(std::string_view path) const -> std::expected<mount_ptr, kstd::error_code>; - auto do_mount_internal(kstd::shared_ptr<dentry> const & mount_point_dentry, - kstd::shared_ptr<struct mount> const & parent_mount, kstd::shared_ptr<filesystem> const & fs, - kstd::shared_ptr<struct mount> const & source_mount = nullptr) -> void; + auto do_mount_internal(dentry_ptr const & mount_point_dentry, mount_ptr const & parent_mount, fs_ptr const & fs, + mount_ptr const & source_mount = nullptr) -> void; auto graft_persistent_device_fs(kstd::shared_ptr<devfs::filesystem> const & device_fs) -> void; |
