/* * Copyright (c) 2021, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Kernel { class PCIDeviceSysFSDirectory final : public SysFSDirectory { public: static NonnullLockRefPtr create(SysFSDirectory const&, PCI::DeviceIdentifier const&); PCI::DeviceIdentifier& device_identifier() const { return *m_device_identifier; } virtual StringView name() const override { return m_device_directory_name->view(); } private: PCIDeviceSysFSDirectory(NonnullOwnPtr device_directory_name, SysFSDirectory const&, PCI::DeviceIdentifier const&); NonnullRefPtr m_device_identifier; NonnullOwnPtr m_device_directory_name; }; }