/* * Copyright (c) 2021-2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Kernel { class SysFSUSBBusDirectory final : public SysFSDirectory { public: static void initialize(); static SysFSUSBBusDirectory& the(); virtual StringView name() const override { return "usb"sv; } void plug(Badge, SysFSUSBDeviceInformation&); void unplug(Badge, SysFSUSBDeviceInformation&); private: explicit SysFSUSBBusDirectory(SysFSBusDirectory&); mutable Spinlock m_lock {}; }; }