diff options
| author | marcel.braun <marcel.braun@ost.ch> | 2026-03-30 21:01:18 +0200 |
|---|---|---|
| committer | marcel.braun <marcel.braun@ost.ch> | 2026-03-30 21:23:47 +0200 |
| commit | 81ab0ba35d724dd465ed870e87047b3bf74cea13 (patch) | |
| tree | 00a4307c432e1f656d9fd457d30b6beec9a69f0f /kernel/src/filesystem/rootfs/inode.cpp | |
| parent | 0b5084780e4a89dcaccbda5823495c9cdd62b006 (diff) | |
| download | teachos-81ab0ba35d724dd465ed870e87047b3bf74cea13.tar.xz teachos-81ab0ba35d724dd465ed870e87047b3bf74cea13.zip | |
Rename rootfs filesystem files
Diffstat (limited to 'kernel/src/filesystem/rootfs/inode.cpp')
| -rw-r--r-- | kernel/src/filesystem/rootfs/inode.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/kernel/src/filesystem/rootfs/inode.cpp b/kernel/src/filesystem/rootfs/inode.cpp new file mode 100644 index 0000000..3ca9c02 --- /dev/null +++ b/kernel/src/filesystem/rootfs/inode.cpp @@ -0,0 +1,39 @@ +#include "kernel/filesystem/inode.hpp" + +#include "kernel/filesystem/rootfs/inode.hpp" + +#include <kstd/memory> +#include <kstd/string> + +#include <algorithm> +#include <cstddef> +#include <string_view> +#include <utility> + +namespace kernel::filesystem::rootfs +{ + inode::inode() + : kernel::filesystem::inode(inode_kind::directory) + {} + + auto inode::read(void * /*buffer*/, size_t /*offset*/, size_t /*size*/) const -> size_t + { + return 0; + } + + auto inode::write(void const * /*buffer*/, size_t /*offset*/, size_t /*size*/) -> size_t + { + return 0; + } + + auto inode::add_child(std::string_view name) -> void + { + m_children.push_back(std::make_pair(kstd::string{name}, kstd::make_shared<inode>())); + } + + auto inode::lookup_child(std::string_view name) -> kstd::shared_ptr<inode> + { + auto it = std::ranges::find_if(m_children, [&](auto const & pair) { return pair.first == name; }); + return (it != m_children.end()) ? it->second : nullptr; + } +} // namespace kernel::filesystem::rootfs |
