DeviceComponent.cpp 968 B

123456789101112131415161718192021222324252627
  1. /*
  2. * Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <Kernel/Devices/Device.h>
  7. #include <Kernel/FileSystem/SysFS/Subsystems/DeviceIdentifiers/DeviceComponent.h>
  8. #include <Kernel/Sections.h>
  9. namespace Kernel {
  10. NonnullRefPtr<SysFSDeviceComponent> SysFSDeviceComponent::must_create(Device const& device)
  11. {
  12. // FIXME: Handle allocation failure gracefully
  13. auto device_name = MUST(KString::formatted("{}:{}", device.major(), device.minor()));
  14. return adopt_ref_if_nonnull(new SysFSDeviceComponent(move(device_name), device)).release_nonnull();
  15. }
  16. SysFSDeviceComponent::SysFSDeviceComponent(NonnullOwnPtr<KString> major_minor_formatted_device_name, Device const& device)
  17. : SysFSComponent()
  18. , m_block_device(device.is_block_device())
  19. , m_major_minor_formatted_device_name(move(major_minor_formatted_device_name))
  20. {
  21. VERIFY(device.is_block_device() || device.is_character_device());
  22. }
  23. }