Directory.cpp 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <AK/Error.h>
  7. #include <AK/Try.h>
  8. #include <Kernel/FileSystem/SysFS/Component.h>
  9. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/CPUInfo.h>
  10. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/CommandLine.h>
  11. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Directory.h>
  12. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/DiskUsage.h>
  13. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/GlobalInformation.h>
  14. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Interrupts.h>
  15. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Jails.h>
  16. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Keymap.h>
  17. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/LoadBase.h>
  18. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Log.h>
  19. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/MemoryStatus.h>
  20. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Directory.h>
  21. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/PowerStateSwitch.h>
  22. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Processes.h>
  23. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Profile.h>
  24. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/SystemMode.h>
  25. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/SystemStatistics.h>
  26. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Uptime.h>
  27. #include <Kernel/FileSystem/SysFS/Subsystems/Kernel/Variables/Directory.h>
  28. namespace Kernel {
  29. UNMAP_AFTER_INIT NonnullLockRefPtr<SysFSGlobalKernelStatsDirectory> SysFSGlobalKernelStatsDirectory::must_create(SysFSRootDirectory const& root_directory)
  30. {
  31. auto global_kernel_stats_directory = adopt_lock_ref_if_nonnull(new (nothrow) SysFSGlobalKernelStatsDirectory(root_directory)).release_nonnull();
  32. MUST(global_kernel_stats_directory->m_child_components.with([&](auto& list) -> ErrorOr<void> {
  33. list.append(SysFSDiskUsage::must_create(*global_kernel_stats_directory));
  34. list.append(SysFSMemoryStatus::must_create(*global_kernel_stats_directory));
  35. list.append(SysFSSystemStatistics::must_create(*global_kernel_stats_directory));
  36. list.append(SysFSOverallProcesses::must_create(*global_kernel_stats_directory));
  37. list.append(SysFSCPUInformation::must_create(*global_kernel_stats_directory));
  38. list.append(SysFSKernelLog::must_create(*global_kernel_stats_directory));
  39. list.append(SysFSInterrupts::must_create(*global_kernel_stats_directory));
  40. list.append(SysFSKeymap::must_create(*global_kernel_stats_directory));
  41. list.append(SysFSUptime::must_create(*global_kernel_stats_directory));
  42. list.append(SysFSCommandLine::must_create(*global_kernel_stats_directory));
  43. list.append(SysFSSystemMode::must_create(*global_kernel_stats_directory));
  44. list.append(SysFSProfile::must_create(*global_kernel_stats_directory));
  45. list.append(SysFSKernelLoadBase::must_create(*global_kernel_stats_directory));
  46. list.append(SysFSPowerStateSwitchNode::must_create(*global_kernel_stats_directory));
  47. list.append(SysFSJails::must_create(*global_kernel_stats_directory));
  48. list.append(SysFSGlobalNetworkStatsDirectory::must_create(*global_kernel_stats_directory));
  49. list.append(SysFSGlobalKernelVariablesDirectory::must_create(*global_kernel_stats_directory));
  50. return {};
  51. }));
  52. return global_kernel_stats_directory;
  53. }
  54. UNMAP_AFTER_INIT SysFSGlobalKernelStatsDirectory::SysFSGlobalKernelStatsDirectory(SysFSDirectory const& root_directory)
  55. : SysFSDirectory(root_directory)
  56. {
  57. }
  58. }