/* * SPDX-FileCopyrightText: Copyright OpenBMC Authors * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include "MctpRequester.hpp" #include #include #include #include #include #include #include #include constexpr const char* sensorPathPrefix = "/xyz/openbmc_project/sensors/"; constexpr const char* deviceType = "NvidiaMctpVdm"; struct SensorConfigs { std::string name; uint64_t pollRate{}; }; class GpuDevice; class SmaDevice; class PcieDevice; void createSensors( boost::asio::io_context& io, sdbusplus::asio::object_server& objectServer, boost::container::flat_map>& gpuDevices, boost::container::flat_map>& smaDevices, boost::container::flat_map>& pcieDevices, const std::shared_ptr& dbusConnection, mctp::MctpRequester& mctpRequester); void interfaceRemoved( sdbusplus::message_t& message, boost::container::flat_map>& gpuDevices, boost::container::flat_map>& smaDevices, boost::container::flat_map>& pcieDevices);