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