/* * Copyright (c) 2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Kernel { class SysFSDeviceComponent final : public SysFSComponent , public LockWeakable { friend class SysFSBlockDevicesDirectory; friend class SysFSCharacterDevicesDirectory; public: static NonnullLockRefPtr must_create(Device const&); virtual StringView name() const override { return m_major_minor_formatted_device_name->view(); } bool is_block_device() const { return m_block_device; } private: SysFSDeviceComponent(NonnullOwnPtr major_minor_formatted_device_name, Device const&); bool m_block_device; NonnullOwnPtr m_major_minor_formatted_device_name; }; }