xref: /openbmc/pldm/host-bmc/utils.hpp (revision 41ca40dc67d078e96bd869a24f15a042f3cc6a7c)
17d427f16SKamalkumar Patel #include "common/utils.hpp"
24e69d252SKamalkumar Patel #include "libpldmresponder/oem_handler.hpp"
34e69d252SKamalkumar Patel 
4*41ca40dcSAndrew Jeffery #include <libpldm/pdr.h>
5*41ca40dcSAndrew Jeffery 
64e69d252SKamalkumar Patel #include <nlohmann/json.hpp>
74e69d252SKamalkumar Patel #include <phosphor-logging/lg2.hpp>
84e69d252SKamalkumar Patel 
94e69d252SKamalkumar Patel #include <filesystem>
104e69d252SKamalkumar Patel #include <fstream>
114e69d252SKamalkumar Patel #include <map>
124e69d252SKamalkumar Patel #include <string>
134e69d252SKamalkumar Patel #include <vector>
144e69d252SKamalkumar Patel 
154e69d252SKamalkumar Patel PHOSPHOR_LOG2_USING;
167d427f16SKamalkumar Patel 
174e69d252SKamalkumar Patel namespace pldm
184e69d252SKamalkumar Patel {
194e69d252SKamalkumar Patel namespace hostbmc
204e69d252SKamalkumar Patel {
214e69d252SKamalkumar Patel namespace utils
224e69d252SKamalkumar Patel {
234e69d252SKamalkumar Patel 
244e69d252SKamalkumar Patel /** @brief Vector a entity name to pldm_entity from entity association tree
254e69d252SKamalkumar Patel  *  @param[in]  entityAssoc    - Vector of associated pldm entities
264e69d252SKamalkumar Patel  *  @param[in]  entityTree     - entity association tree
274e69d252SKamalkumar Patel  *  @param[out] objPathMap     - maps an object path to pldm_entity from the
284e69d252SKamalkumar Patel  *                               BMC's entity association tree
294e69d252SKamalkumar Patel  *  @return
304e69d252SKamalkumar Patel  */
3115ce5a18SKamalkumar Patel void updateEntityAssociation(
327d427f16SKamalkumar Patel     const pldm::utils::EntityAssociations& entityAssoc,
337d427f16SKamalkumar Patel     pldm_entity_association_tree* entityTree,
347d427f16SKamalkumar Patel     pldm::utils::ObjectPathMaps& objPathMap, pldm::utils::EntityMaps entityMaps,
3515ce5a18SKamalkumar Patel     pldm::responder::oem_platform::Handler* oemPlatformHandler);
36516122e0SKamalkumar Patel 
37516122e0SKamalkumar Patel /** @brief Parsing entity to DBus string mapping from json file
38516122e0SKamalkumar Patel  *
39516122e0SKamalkumar Patel  *  @param[in]  filePath - JSON file path for parsing
40516122e0SKamalkumar Patel  *
41516122e0SKamalkumar Patel  *  @return returns the entity to DBus string mapping object
42516122e0SKamalkumar Patel  */
437d427f16SKamalkumar Patel pldm::utils::EntityMaps parseEntityMap(const fs::path& filePath);
444e69d252SKamalkumar Patel 
454e69d252SKamalkumar Patel } // namespace utils
464e69d252SKamalkumar Patel } // namespace hostbmc
474e69d252SKamalkumar Patel } // namespace pldm
48