Serenity Operating System
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}