blob: 3ca9c0260715f6eee19511b382fdd47616b5f750 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
|