aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/include/kernel/filesystem/filesystem.hpp5
-rw-r--r--kernel/src/filesystem/filesystem.cpp11
2 files changed, 16 insertions, 0 deletions
diff --git a/kernel/include/kernel/filesystem/filesystem.hpp b/kernel/include/kernel/filesystem/filesystem.hpp
index e069ced..362242f 100644
--- a/kernel/include/kernel/filesystem/filesystem.hpp
+++ b/kernel/include/kernel/filesystem/filesystem.hpp
@@ -2,6 +2,7 @@
#define TEACH_OS_KERNEL_FILESYSTEM_FILESYSTEM_HPP
#include "kernel/devices/device.hpp"
+#include "kernel/filesystem/dentry.hpp"
#include "kernel/filesystem/inode.hpp"
#include <kstd/memory>
@@ -19,11 +20,15 @@ namespace filesystem
virtual auto lookup(kstd::shared_ptr<inode> const & parent, std::string_view name) -> kstd::shared_ptr<inode> = 0;
[[nodiscard]] auto root_inode() const -> kstd::shared_ptr<inode> const &;
+ [[nodiscard]] auto root_dentry() const -> kstd::shared_ptr<dentry> const &;
+
+ auto set_root_dentry(kstd::shared_ptr<dentry> dentry) -> void;
protected:
kstd::shared_ptr<inode> m_root_inode{};
kstd::shared_ptr<devices::device> m_device{};
kstd::vector<kstd::shared_ptr<inode>> m_inodes{};
+ kstd::shared_ptr<dentry> m_root_dentry;
};
} // namespace filesystem
diff --git a/kernel/src/filesystem/filesystem.cpp b/kernel/src/filesystem/filesystem.cpp
index 0e33d95..8ebe58f 100644
--- a/kernel/src/filesystem/filesystem.cpp
+++ b/kernel/src/filesystem/filesystem.cpp
@@ -1,6 +1,7 @@
#include "kernel/filesystem/filesystem.hpp"
#include "kernel/devices/device.hpp"
+#include "kernel/filesystem/dentry.hpp"
#include "kernel/filesystem/inode.hpp"
#include <kstd/memory>
@@ -21,4 +22,14 @@ namespace filesystem
{
return m_root_inode;
}
+
+ auto filesystem::root_dentry() const -> kstd::shared_ptr<dentry> const &
+ {
+ return m_root_dentry;
+ }
+
+ auto filesystem::set_root_dentry(kstd::shared_ptr<dentry> dentry) -> void
+ {
+ m_root_dentry = dentry;
+ }
} // namespace filesystem \ No newline at end of file