diff options
| author | marcel.braun <marcel.braun@ost.ch> | 2026-03-23 09:49:10 +0100 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-26 21:18:47 +0100 |
| commit | d70e2df0885a844d47b6498bf2c710fb9730b364 (patch) | |
| tree | ce6c26e895c4c80ce7dfd8c40abca90fc47eee5a /kernel/include | |
| parent | f90cbdaa91b1b7a4752db3f159ce2524696cff9f (diff) | |
| download | teachos-d70e2df0885a844d47b6498bf2c710fb9730b364.tar.xz teachos-d70e2df0885a844d47b6498bf2c710fb9730b364.zip | |
Add dentry structure
Diffstat (limited to 'kernel/include')
| -rw-r--r-- | kernel/include/kernel/filesystem/dentry.hpp | 14 | ||||
| -rw-r--r-- | kernel/include/kernel/filesystem/vfs.hpp | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/kernel/include/kernel/filesystem/dentry.hpp b/kernel/include/kernel/filesystem/dentry.hpp index 1532880..db15b48 100644 --- a/kernel/include/kernel/filesystem/dentry.hpp +++ b/kernel/include/kernel/filesystem/dentry.hpp @@ -4,21 +4,35 @@ #include "kernel/filesystem/inode.hpp" #include <kstd/memory> +#include <kstd/string> #include <kstd/vector> +#include <cstdint> + namespace filesystem { struct dentry { + enum class dentry_flags : uint32_t + { + dcache_mounted = 1 << 15 + }; + dentry(kstd::shared_ptr<dentry> const & parent, kstd::shared_ptr<inode> const & node); [[nodiscard]] auto get_inode() const -> kstd::shared_ptr<inode> const &; [[nodiscard]] auto get_parent() const -> kstd::shared_ptr<dentry> const &; + auto set_flag(dentry_flags flag) -> void; + auto unset_flag(dentry_flags flag) -> void; + [[nodiscard]] auto has_flag(dentry_flags flag) const -> bool; + private: + kstd::string m_name; kstd::shared_ptr<dentry> m_parent; kstd::vector<kstd::shared_ptr<dentry>> m_children; kstd::shared_ptr<inode> m_inode; + uint32_t m_flags{0}; }; } // namespace filesystem diff --git a/kernel/include/kernel/filesystem/vfs.hpp b/kernel/include/kernel/filesystem/vfs.hpp index bcf06f7..01cd2ea 100644 --- a/kernel/include/kernel/filesystem/vfs.hpp +++ b/kernel/include/kernel/filesystem/vfs.hpp @@ -40,7 +40,7 @@ namespace filesystem [[nodiscard]] auto resolve_path(std::string_view path) -> std::optional<dentry>; kstd::shared_ptr<filesystem> m_root_fs; - std::optional<mount> m_root_mount; + kstd::shared_ptr<dentry> m_root_dentry; kstd::vector<mount> m_mount_table; }; } // namespace filesystem |
