Serenity Operating System
1/*
2 * Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <Kernel/FileSystem/SysFS/Component.h>
10#include <Kernel/FileSystem/SysFS/Subsystems/DeviceIdentifiers/DeviceComponent.h>
11#include <Kernel/FileSystem/SysFS/Subsystems/DeviceIdentifiers/Directory.h>
12
13namespace Kernel {
14
15class CharacterDevice;
16class SysFSCharacterDevicesDirectory final : public SysFSDirectory {
17
18public:
19 virtual StringView name() const override { return "char"sv; }
20 static NonnullLockRefPtr<SysFSCharacterDevicesDirectory> must_create(SysFSDeviceIdentifiersDirectory const&);
21
22 static SysFSCharacterDevicesDirectory& the();
23
24 ChildList& devices_list(Badge<CharacterDevice>) { return m_child_components; }
25
26private:
27 explicit SysFSCharacterDevicesDirectory(SysFSDeviceIdentifiersDirectory const&);
28};
29
30}