xref: /openbmc/pldm/libpldmresponder/pdr.hpp (revision 12afe110)
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