/* * Copyright (c) 2018-2021, Andreas Kling * Copyright (c) 2021, Spencer Dixon * Copyright (c) 2021, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include namespace Kernel { ErrorOr> ProcFS::try_create(ReadonlyBytes) { return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ProcFS)); } ProcFS::ProcFS() = default; ProcFS::~ProcFS() = default; ErrorOr> ProcFS::get_inode(InodeIdentifier inode_id) const { if (inode_id.index() == 1) return *m_root_inode; return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ProcFSInode(const_cast(*this), inode_id.index()))); } ErrorOr ProcFS::initialize() { m_root_inode = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ProcFSInode(const_cast(*this), 1))); return {}; } u8 ProcFS::internal_file_type_to_directory_entry_type(DirectoryEntryView const& entry) const { return ram_backed_file_type_to_directory_entry_type(entry); } Inode& ProcFS::root_inode() { return *m_root_inode; } }