From 84d4476650b31dbfc52becf2ff65ddce9d31c9ec Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Tue, 24 Mar 2026 23:54:28 +0100 Subject: implement a rootfs to handle / mounts correctly --- kernel/src/filesystem/rootfs/rootfs_filesystem.cpp | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 kernel/src/filesystem/rootfs/rootfs_filesystem.cpp (limited to 'kernel/src/filesystem/rootfs/rootfs_filesystem.cpp') diff --git a/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp b/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp new file mode 100644 index 0000000..22b1962 --- /dev/null +++ b/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp @@ -0,0 +1,24 @@ +#include "kernel/filesystem/rootfs/rootfs_filesystem.hpp" + +#include "kernel/devices/device.hpp" +#include "kernel/filesystem/inode.hpp" +#include "kernel/filesystem/rootfs/rootfs_inode.hpp" + +#include + +#include + +namespace filesystem::rootfs +{ + auto rootfs_filesystem::mount(kstd::shared_ptr const & /*device*/) -> int + { + m_root_inode = kstd::make_shared(); + return 0; + } + + auto rootfs_filesystem::lookup(kstd::shared_ptr const & /*parent*/, std::string_view /*name*/) + -> kstd::shared_ptr + { + return nullptr; + } +} // namespace filesystem::rootfs -- cgit v1.2.3 From e97b668f82ad1a51e1e9352073a3ae51cedfdd34 Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Thu, 26 Mar 2026 20:27:23 +0100 Subject: mount /dev in the rootfs --- kernel/src/filesystem/rootfs/rootfs_filesystem.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'kernel/src/filesystem/rootfs/rootfs_filesystem.cpp') diff --git a/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp b/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp index 22b1962..e819fc7 100644 --- a/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp +++ b/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp @@ -12,13 +12,18 @@ namespace filesystem::rootfs { auto rootfs_filesystem::mount(kstd::shared_ptr const & /*device*/) -> int { - m_root_inode = kstd::make_shared(); + auto rfs_inode = kstd::make_shared(); + rfs_inode->add_child("dev"); + m_root_inode = rfs_inode; + return 0; } - auto rootfs_filesystem::lookup(kstd::shared_ptr const & /*parent*/, std::string_view /*name*/) + auto rootfs_filesystem::lookup(kstd::shared_ptr const & parent, std::string_view name) -> kstd::shared_ptr { + if (auto * rfs_inode = static_cast(parent.get())) + return rfs_inode->lookup_child(name); return nullptr; } } // namespace filesystem::rootfs -- cgit v1.2.3 From a6f93bf8df0dbfa7d19aa1168bfc8b052e41c42f Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Sat, 28 Mar 2026 17:28:32 +0100 Subject: fix vfs mount with /dev & /a and rootfs & devfs --- kernel/src/filesystem/rootfs/rootfs_filesystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'kernel/src/filesystem/rootfs/rootfs_filesystem.cpp') diff --git a/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp b/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp index e819fc7..22502aa 100644 --- a/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp +++ b/kernel/src/filesystem/rootfs/rootfs_filesystem.cpp @@ -10,7 +10,7 @@ namespace filesystem::rootfs { - auto rootfs_filesystem::mount(kstd::shared_ptr const & /*device*/) -> int + auto rootfs_filesystem::mount(kstd::shared_ptr const &) -> int { auto rfs_inode = kstd::make_shared(); rfs_inode->add_child("dev"); -- cgit v1.2.3