Serenity Operating System
at master 37 lines 785 B view raw
1/* 2 * Copyright (c) 2019-2020, Sergey Bugaev <bugaevc@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 13namespace Kernel { 14 15class SlavePTY; 16class DevPtsFSInode; 17 18class DevPtsFS final : public FileSystem { 19 friend class DevPtsFSInode; 20 21public: 22 virtual ~DevPtsFS() override; 23 static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(); 24 25 virtual ErrorOr<void> initialize() override; 26 virtual StringView class_name() const override { return "DevPtsFS"sv; } 27 28 virtual Inode& root_inode() override; 29 30private: 31 DevPtsFS(); 32 ErrorOr<NonnullRefPtr<Inode>> get_inode(InodeIdentifier) const; 33 34 RefPtr<DevPtsFSInode> m_root_inode; 35}; 36 37}