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