1c6e8fb50SDeepak Kodihalli #pragma once 2c6e8fb50SDeepak Kodihalli 3d130e1a3SDeepak Kodihalli #include "common/utils.hpp" 4e53193faSGeorge Liu #include "libpldmresponder/pdr_utils.hpp" 5c6e8fb50SDeepak Kodihalli 6c6e8fb50SDeepak Kodihalli #include <stdint.h> 7c6e8fb50SDeepak Kodihalli 8c6e8fb50SDeepak Kodihalli namespace pldm 9c6e8fb50SDeepak Kodihalli { 10c6e8fb50SDeepak Kodihalli 11c6e8fb50SDeepak Kodihalli namespace responder 12c6e8fb50SDeepak Kodihalli { 13c6e8fb50SDeepak Kodihalli 14c6e8fb50SDeepak Kodihalli namespace pdr 15c6e8fb50SDeepak Kodihalli { 16e53193faSGeorge Liu 1712afe110SSampa Misra constexpr uint8_t BmcMctpEid = 8; 1812afe110SSampa Misra 19e53193faSGeorge Liu /** @brief Build (if not built already) and retrieve PDR by the PDR types 20e53193faSGeorge Liu * 21e53193faSGeorge Liu * @param[in] dir - directory housing platform specific PDR JSON files 22e53193faSGeorge Liu * @param[in] pdrType - the type of PDRs 23e53193faSGeorge Liu * 24e53193faSGeorge Liu * @return Repo - Instance of pdr::Repo 25e53193faSGeorge Liu */ 26*5079ac4aSBrad Bishop void getRepoByType(const pldm::responder::pdr_utils::Repo& inRepo, 27*5079ac4aSBrad Bishop pldm::responder::pdr_utils::Repo& outRepo, 28*5079ac4aSBrad Bishop pldm::responder::pdr_utils::Type pdrType); 29e53193faSGeorge Liu 30e53193faSGeorge Liu /** @brief Get the record of PDR by the record handle 31e53193faSGeorge Liu * 32e53193faSGeorge Liu * @param[in] pdrRepo - pdr::RepoInterface 33e53193faSGeorge Liu * @param[in] recordHandle - The recordHandle value for the PDR to be 34e53193faSGeorge Liu * retrieved. 35e53193faSGeorge Liu * @param[out] pdrEntry - PDR entry structure reference 36e53193faSGeorge Liu * 37e53193faSGeorge Liu * @return pldm_pdr_record - Instance of pdr::RepoInterface 38e53193faSGeorge Liu */ 39*5079ac4aSBrad Bishop const pldm_pdr_record* 40*5079ac4aSBrad Bishop getRecordByHandle(const pldm::responder::pdr_utils::RepoInterface& pdrRepo, 41*5079ac4aSBrad Bishop pldm::responder::pdr_utils::RecordHandle recordHandle, 42*5079ac4aSBrad Bishop pldm::responder::pdr_utils::PdrEntry& pdrEntry); 43c6e8fb50SDeepak Kodihalli 44c6e8fb50SDeepak Kodihalli } // namespace pdr 45c6e8fb50SDeepak Kodihalli } // namespace responder 46c6e8fb50SDeepak Kodihalli } // namespace pldm 47