blob: d0ec8f1aa50d087953da121609387c407c05ecd5 [file] [log] [blame]
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -05001#pragma once
2
Deepak Kodihallid130e1a2020-06-17 05:55:32 -05003#include "common/utils.hpp"
George Liue53193f2020-02-24 09:23:26 +08004#include "libpldmresponder/pdr_utils.hpp"
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -05005
6#include <stdint.h>
7
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -05008namespace pldm
9{
10
11namespace responder
12{
13
14namespace pdr
15{
George Liue53193f2020-02-24 09:23:26 +080016
Sampa Misra12afe112020-05-25 11:40:44 -050017constexpr uint8_t BmcMctpEid = 8;
Sampa Misra12afe112020-05-25 11:40:44 -050018
George Liue53193f2020-02-24 09:23:26 +080019/** @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 */
Brad Bishop5079ac42021-08-19 18:35:06 -040026void getRepoByType(const pldm::responder::pdr_utils::Repo& inRepo,
27 pldm::responder::pdr_utils::Repo& outRepo,
28 pldm::responder::pdr_utils::Type pdrType);
George Liue53193f2020-02-24 09:23:26 +080029
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 */
Brad Bishop5079ac42021-08-19 18:35:06 -040039const 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);
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -050043
44} // namespace pdr
45} // namespace responder
46} // namespace pldm