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