Serenity Operating System
at master 38 lines 1.3 kB view raw
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}