| #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 |