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