aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/dentry.cpp
diff options
context:
space:
mode:
authorMarcel Braun <marcel.braun@ost.ch>2026-05-05 23:25:47 +0200
committerMarcel Braun <marcel.braun@ost.ch>2026-05-05 23:25:47 +0200
commitea450f4ed742a37b40a4e1dcaf8d17328d635472 (patch)
treecd9511ff9145dd993f257c2fcca4d8d06e857625 /kernel/src/filesystem/dentry.cpp
parent3082340fa8ab3c7c0da5d2f9d321d2367d399b20 (diff)
parent4522374b902ee9a30c83c2ec23880522e80febea (diff)
downloadkernel-ea450f4ed742a37b40a4e1dcaf8d17328d635472.tar.xz
kernel-ea450f4ed742a37b40a4e1dcaf8d17328d635472.zip
Merge branch 'symbolic-links' into 'develop-BA-FS26'
Symbolic links See merge request teachos/kernel!29
Diffstat (limited to 'kernel/src/filesystem/dentry.cpp')
-rw-r--r--kernel/src/filesystem/dentry.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/src/filesystem/dentry.cpp b/kernel/src/filesystem/dentry.cpp
index 572dd82..1cf8730 100644
--- a/kernel/src/filesystem/dentry.cpp
+++ b/kernel/src/filesystem/dentry.cpp
@@ -5,6 +5,7 @@
#include <kapi/system.hpp>
#include <kstd/memory>
+#include <kstd/string>
#include <algorithm>
#include <cstdint>
@@ -38,6 +39,22 @@ namespace kernel::filesystem
return m_name.view();
}
+ // NOLINTNEXTLINE(misc-no-recursion)
+ auto dentry::get_full_path() const -> kstd::string
+ {
+ if (m_parent)
+ {
+ auto parent_path = m_parent->get_full_path();
+ if (parent_path != "/")
+ {
+ parent_path += '/';
+ }
+ return parent_path + m_name.view();
+ }
+
+ return m_name.view();
+ }
+
auto dentry::add_child(kstd::shared_ptr<dentry> const & child) -> void
{
m_children.push_back(child);