blob: 27a0bd3d1469044f5d89e43cae68a80c741f278e [file] [log] [blame]
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -05001#include "pdr.hpp"
2
Deepak Kodihallic682fe22020-03-04 00:42:54 -06003#include "platform.hpp"
4
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -05005namespace pldm
6{
7
8namespace responder
9{
10
11namespace pdr
12{
Deepak Kodihallic682fe22020-03-04 00:42:54 -060013
George Liue53193f2020-02-24 09:23:26 +080014using namespace pldm::responder::pdr_utils;
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -050015
Deepak Kodihallic682fe22020-03-04 00:42:54 -060016void getRepoByType(const Repo& inRepo, Repo& outRepo, Type pdrType)
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -050017{
George Liue53193f2020-02-24 09:23:26 +080018 uint8_t* pdrData = nullptr;
19 uint32_t pdrSize{};
Deepak Kodihallic682fe22020-03-04 00:42:54 -060020 auto record = pldm_pdr_find_record_by_type(inRepo.getPdr(), pdrType, NULL,
George Liue53193f2020-02-24 09:23:26 +080021 &pdrData, &pdrSize);
22 while (record)
23 {
24 PdrEntry pdrEntry{};
25 pdrEntry.data = pdrData;
26 pdrEntry.size = pdrSize;
Deepak Kodihallic682fe22020-03-04 00:42:54 -060027 pdrEntry.handle.recordHandle = inRepo.getRecordHandle(record);
28 outRepo.addRecord(pdrEntry);
George Liue53193f2020-02-24 09:23:26 +080029
30 pdrData = nullptr;
31 pdrSize = 0;
Deepak Kodihallic682fe22020-03-04 00:42:54 -060032 record = pldm_pdr_find_record_by_type(inRepo.getPdr(), pdrType, record,
George Liue53193f2020-02-24 09:23:26 +080033 &pdrData, &pdrSize);
34 }
George Liue53193f2020-02-24 09:23:26 +080035}
36
Deepak Kodihallic682fe22020-03-04 00:42:54 -060037const pldm_pdr_record* getRecordByHandle(const RepoInterface& pdrRepo,
George Liue53193f2020-02-24 09:23:26 +080038 RecordHandle recordHandle,
39 PdrEntry& pdrEntry)
40{
41 uint8_t* pdrData = nullptr;
42 auto record =
43 pldm_pdr_find_record(pdrRepo.getPdr(), recordHandle, &pdrData,
44 &pdrEntry.size, &pdrEntry.handle.nextRecordHandle);
45 if (record)
46 {
47 pdrEntry.data = pdrData;
48 }
49
50 return record;
51}
52
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -050053} // namespace pdr
54} // namespace responder
55} // namespace pldm