aboutsummaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
authormarcel.braun <marcel.braun@ost.ch>2026-03-23 21:41:37 +0100
committerLukas Oesch <lukasoesch20@gmail.com>2026-03-26 21:18:55 +0100
commitfbb4eefce7bf825b0406f6fa63de318153a3b95a (patch)
tree6be6701f47ecfd1b63dde39f3f8da2b8d953d45e /kernel/include
parent336b25458b75e28c93c0bab23ccd359042f9df41 (diff)
downloadteachos-fbb4eefce7bf825b0406f6fa63de318153a3b95a.tar.xz
teachos-fbb4eefce7bf825b0406f6fa63de318153a3b95a.zip
Implement resolve_path
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/kernel/filesystem/dentry.hpp6
-rw-r--r--kernel/include/kernel/filesystem/open_file_description.hpp2
-rw-r--r--kernel/include/kernel/filesystem/vfs.hpp2
3 files changed, 7 insertions, 3 deletions
diff --git a/kernel/include/kernel/filesystem/dentry.hpp b/kernel/include/kernel/filesystem/dentry.hpp
index db15b48..ca7ca95 100644
--- a/kernel/include/kernel/filesystem/dentry.hpp
+++ b/kernel/include/kernel/filesystem/dentry.hpp
@@ -8,6 +8,7 @@
#include <kstd/vector>
#include <cstdint>
+#include <string_view>
namespace filesystem
{
@@ -18,11 +19,14 @@ namespace filesystem
dcache_mounted = 1 << 15
};
- dentry(kstd::shared_ptr<dentry> const & parent, kstd::shared_ptr<inode> const & node);
+ dentry(kstd::shared_ptr<dentry> const & parent, kstd::shared_ptr<inode> const & node, std::string_view name = {});
[[nodiscard]] auto get_inode() const -> kstd::shared_ptr<inode> const &;
[[nodiscard]] auto get_parent() const -> kstd::shared_ptr<dentry> const &;
+ auto add_child(kstd::shared_ptr<dentry> const & child) -> void;
+ [[nodiscard]] auto find_child(std::string_view name) const -> kstd::shared_ptr<dentry>;
+
auto set_flag(dentry_flags flag) -> void;
auto unset_flag(dentry_flags flag) -> void;
[[nodiscard]] auto has_flag(dentry_flags flag) const -> bool;
diff --git a/kernel/include/kernel/filesystem/open_file_description.hpp b/kernel/include/kernel/filesystem/open_file_description.hpp
index 3c97d50..e17f9fe 100644
--- a/kernel/include/kernel/filesystem/open_file_description.hpp
+++ b/kernel/include/kernel/filesystem/open_file_description.hpp
@@ -11,7 +11,7 @@ namespace filesystem
{
struct open_file_description
{
- open_file_description(kstd::shared_ptr<inode> const & inode);
+ explicit open_file_description(kstd::shared_ptr<inode> const & inode);
~open_file_description() = default;
diff --git a/kernel/include/kernel/filesystem/vfs.hpp b/kernel/include/kernel/filesystem/vfs.hpp
index b6d4c4c..317f2d1 100644
--- a/kernel/include/kernel/filesystem/vfs.hpp
+++ b/kernel/include/kernel/filesystem/vfs.hpp
@@ -39,7 +39,7 @@ namespace filesystem
auto init_internal() -> void;
auto make_device_node(kstd::shared_ptr<devices::device> const & device) -> void;
- [[nodiscard]] auto resolve_path(std::string_view path) -> std::optional<dentry>;
+ [[nodiscard]] auto resolve_path(std::string_view path) -> kstd::shared_ptr<dentry>;
kstd::shared_ptr<filesystem> m_root_fs;
kstd::shared_ptr<dentry> m_root_dentry;