/* * Copyright (c) 2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Kernel { class StorageDeviceSysFSDirectory; class StorageDevice; class SysFSStorageDirectory : public SysFSDirectory { friend class SysFSComponentRegistry; public: virtual StringView name() const override { return "storage"sv; } static SysFSStorageDirectory& the(); static NonnullLockRefPtr must_create(SysFSDevicesDirectory const&); void plug(Badge, StorageDeviceSysFSDirectory&); void unplug(Badge, SysFSDirectory&); private: explicit SysFSStorageDirectory(SysFSDevicesDirectory const&); }; }