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 8e53193faSGeorge Liu using namespace pldm::responder::pdr_utils; 9e53193faSGeorge Liu 10c6e8fb50SDeepak Kodihalli namespace pldm 11c6e8fb50SDeepak Kodihalli { 12c6e8fb50SDeepak Kodihalli 13c6e8fb50SDeepak Kodihalli namespace responder 14c6e8fb50SDeepak Kodihalli { 15c6e8fb50SDeepak Kodihalli 16c6e8fb50SDeepak Kodihalli namespace pdr 17c6e8fb50SDeepak Kodihalli { 18e53193faSGeorge Liu 19*12afe110SSampa Misra constexpr uint8_t BmcMctpEid = 8; 20*12afe110SSampa Misra constexpr uint8_t BmcPldmTerminusHandle = 1; 21*12afe110SSampa Misra constexpr uint8_t BmcTerminusId = 1; 22*12afe110SSampa Misra 23e53193faSGeorge Liu /** @brief Build (if not built already) and retrieve PDR by the PDR types 24e53193faSGeorge Liu * 25e53193faSGeorge Liu * @param[in] dir - directory housing platform specific PDR JSON files 26e53193faSGeorge Liu * @param[in] pdrType - the type of PDRs 27e53193faSGeorge Liu * 28e53193faSGeorge Liu * @return Repo - Instance of pdr::Repo 29e53193faSGeorge Liu */ 30c682fe2dSDeepak Kodihalli void getRepoByType(const Repo& inRepo, Repo& outRepo, Type pdrType); 31e53193faSGeorge Liu 32e53193faSGeorge Liu /** @brief Get the record of PDR by the record handle 33e53193faSGeorge Liu * 34e53193faSGeorge Liu * @param[in] pdrRepo - pdr::RepoInterface 35e53193faSGeorge Liu * @param[in] recordHandle - The recordHandle value for the PDR to be 36e53193faSGeorge Liu * retrieved. 37e53193faSGeorge Liu * @param[out] pdrEntry - PDR entry structure reference 38e53193faSGeorge Liu * 39e53193faSGeorge Liu * @return pldm_pdr_record - Instance of pdr::RepoInterface 40e53193faSGeorge Liu */ 41c682fe2dSDeepak Kodihalli const pldm_pdr_record* getRecordByHandle(const RepoInterface& pdrRepo, 42e53193faSGeorge Liu RecordHandle recordHandle, 43e53193faSGeorge Liu PdrEntry& pdrEntry); 44c6e8fb50SDeepak Kodihalli 45c6e8fb50SDeepak Kodihalli } // namespace pdr 46c6e8fb50SDeepak Kodihalli } // namespace responder 47c6e8fb50SDeepak Kodihalli } // namespace pldm 48