Serenity Operating System
at master 38 lines 807 B view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/Types.h> 10#include <Kernel/FileSystem/FileSystem.h> 11#include <Kernel/FileSystem/Inode.h> 12#include <Kernel/Forward.h> 13 14namespace Kernel { 15 16class ProcFSInode; 17class ProcFS final : public FileSystem { 18 friend class ProcFSInode; 19 friend class Process; 20 21public: 22 virtual ~ProcFS() override; 23 static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(); 24 25 virtual ErrorOr<void> initialize() override; 26 virtual StringView class_name() const override { return "ProcFS"sv; } 27 28 virtual Inode& root_inode() override; 29 30private: 31 ProcFS(); 32 33 ErrorOr<NonnullRefPtr<Inode>> get_inode(InodeIdentifier) const; 34 35 RefPtr<ProcFSInode> m_root_inode; 36}; 37 38}