#pragma once #include "ipmi_fru_info_area.hpp" #include <sdbusplus/bus.hpp> #include <string> namespace ipmi { namespace fru { using FRUId = uint8_t; using FRUAreaMap = std::map<FRUId, FruAreaData>; static constexpr auto xyzPrefix = "/xyz/openbmc_project/"; static constexpr auto invMgrInterface = "xyz.openbmc_project.Inventory.Manager"; static constexpr auto invObjPath = "/xyz/openbmc_project/inventory"; static constexpr auto propInterface = "org.freedesktop.DBus.Properties"; static constexpr auto invItemInterface = "xyz.openbmc_project.Inventory.Item"; static constexpr auto itemPresentProp = "Present"; /** * @brief Get fru area data as per IPMI specification * * @param[in] fruNum FRU ID * * @return FRU area data as per IPMI specification */ const FruAreaData& getFruAreaData(const FRUId& fruNum); /** * @brief Register callback handler into DBUS for PropertyChange events * * @return negative value on failure */ int registerCallbackHandler(); } // namespace fru } // namespace ipmi