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#include <Kernel/FileSystem/SysFS/Registry.h>
8#include <Kernel/FileSystem/SysFS/RootDirectory.h>
9#include <Kernel/FileSystem/SysFS/Subsystems/Bus/Directory.h>
10#include <Kernel/FileSystem/SysFS/Subsystems/DeviceIdentifiers/Directory.h>
11#include <Kernel/FileSystem/SysFS/Subsystems/Devices/Directory.h>
12#include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Directory.h>
13#include <Kernel/Sections.h>
14
15namespace Kernel {
16
17NonnullLockRefPtr<SysFSRootDirectory> SysFSRootDirectory::create()
18{
19 return adopt_lock_ref(*new (nothrow) SysFSRootDirectory);
20}
21
22SysFSRootDirectory::SysFSRootDirectory()
23{
24 auto buses_directory = SysFSBusDirectory::must_create(*this);
25 auto device_identifiers_directory = SysFSDeviceIdentifiersDirectory::must_create(*this);
26 auto devices_directory = SysFSDevicesDirectory::must_create(*this);
27 auto global_kernel_stats_directory = SysFSGlobalKernelStatsDirectory::must_create(*this);
28 MUST(m_child_components.with([&](auto& list) -> ErrorOr<void> {
29 list.append(buses_directory);
30 list.append(device_identifiers_directory);
31 list.append(devices_directory);
32 list.append(global_kernel_stats_directory);
33 return {};
34 }));
35 m_buses_directory = buses_directory;
36}
37
38}