Implement PDR.FindStateSensorPDR DBus API
This commit implements a DBus API defined at
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-dbus-interfaces/+/32905
to find the stateSensorPDR based on the entity ID
and stateSetID
Tested: Tested ok in fp5280g2 system
busctl call xyz.openbmc_project.PLDM /xyz/openbmc_project/pldm xyz.openbmc_project.PLDM.PDR FindStateSensorPDR yqq 1 5 1
aay 1 27 4 0 0 0 1 4 0 0 17 0 0 0 1 0 5 0 0 0 0 0 0 0 1 1 0 1 33
Signed-off-by: Chicago Duan <duanzhijia01@inspur.com>
Change-Id: I2b4ea63df4890933d1c70ac48a6829e7c1204f69
diff --git a/utils.hpp b/utils.hpp
index 0814de2..715d509 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -270,6 +270,17 @@
uint16_t entityID,
uint16_t stateSetId,
const pldm_pdr* repo);
+/** @brief Find State Sensor PDR
+ * @param[in] tid - PLDM terminus ID.
+ * @param[in] entityID - entity that can be associated with PLDM State set.
+ * @param[in] stateSetId - value that identifies PLDM State set.
+ * @param[in] repo - pointer to BMC's primary PDR repo.
+ * @return array[array[uint8_t]] - StateSensorPDRs
+ */
+std::vector<std::vector<uint8_t>> findStateSensorPDR(uint8_t tid,
+ uint16_t entityID,
+ uint16_t stateSetId,
+ const pldm_pdr* repo);
} // namespace utils
} // namespace pldm