/* * Copyright (c) 2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Kernel { class StorageDeviceAttributeSysFSComponent; class StorageDeviceSysFSDirectory final : public SysFSDirectory { public: static NonnullRefPtr create(SysFSDirectory const&, StorageDevice const&); virtual StringView name() const override { return m_device_directory_name->view(); } StorageDevice const& device(Badge) const; private: StorageDeviceSysFSDirectory(NonnullOwnPtr device_directory_name, SysFSDirectory const&, StorageDevice const&); RefPtr m_device; NonnullOwnPtr m_device_directory_name; }; }