1c6e8fb50SDeepak Kodihalli #include "pdr.hpp"
2c6e8fb50SDeepak Kodihalli
3a2870726SGeorge Liu #include "pdr_state_effecter.hpp"
4c682fe2dSDeepak Kodihalli
5c6e8fb50SDeepak Kodihalli namespace pldm
6c6e8fb50SDeepak Kodihalli {
7c6e8fb50SDeepak Kodihalli
8c6e8fb50SDeepak Kodihalli namespace responder
9c6e8fb50SDeepak Kodihalli {
10c6e8fb50SDeepak Kodihalli
11c6e8fb50SDeepak Kodihalli namespace pdr
12c6e8fb50SDeepak Kodihalli {
13e53193faSGeorge Liu using namespace pldm::responder::pdr_utils;
14c6e8fb50SDeepak Kodihalli
getRepoByType(const Repo & inRepo,Repo & outRepo,Type pdrType)15c682fe2dSDeepak Kodihalli void getRepoByType(const Repo& inRepo, Repo& outRepo, Type pdrType)
16c6e8fb50SDeepak Kodihalli {
17e53193faSGeorge Liu uint8_t* pdrData = nullptr;
18e53193faSGeorge Liu uint32_t pdrSize{};
19*7c14fc47SJayanth Othayoth auto record = pldm_pdr_find_record_by_type(inRepo.getPdr(), pdrType,
20*7c14fc47SJayanth Othayoth nullptr, &pdrData, &pdrSize);
21e53193faSGeorge Liu while (record)
22e53193faSGeorge Liu {
23e53193faSGeorge Liu PdrEntry pdrEntry{};
24e53193faSGeorge Liu pdrEntry.data = pdrData;
25e53193faSGeorge Liu pdrEntry.size = pdrSize;
26c682fe2dSDeepak Kodihalli pdrEntry.handle.recordHandle = inRepo.getRecordHandle(record);
27c682fe2dSDeepak Kodihalli outRepo.addRecord(pdrEntry);
28e53193faSGeorge Liu
29e53193faSGeorge Liu pdrData = nullptr;
30e53193faSGeorge Liu pdrSize = 0;
31c682fe2dSDeepak Kodihalli record = pldm_pdr_find_record_by_type(inRepo.getPdr(), pdrType, record,
32e53193faSGeorge Liu &pdrData, &pdrSize);
33e53193faSGeorge Liu }
34e53193faSGeorge Liu }
35e53193faSGeorge Liu
getRecordByHandle(const RepoInterface & pdrRepo,RecordHandle recordHandle,PdrEntry & pdrEntry)3616c2a0a0SPatrick Williams const pldm_pdr_record* getRecordByHandle(
3716c2a0a0SPatrick Williams const RepoInterface& pdrRepo, RecordHandle recordHandle, PdrEntry& pdrEntry)
38e53193faSGeorge Liu {
39e53193faSGeorge Liu uint8_t* pdrData = nullptr;
4016c2a0a0SPatrick Williams auto record =
4116c2a0a0SPatrick Williams pldm_pdr_find_record(pdrRepo.getPdr(), recordHandle, &pdrData,
4216c2a0a0SPatrick Williams &pdrEntry.size, &pdrEntry.handle.nextRecordHandle);
43e53193faSGeorge Liu if (record)
44e53193faSGeorge Liu {
45e53193faSGeorge Liu pdrEntry.data = pdrData;
46e53193faSGeorge Liu }
47e53193faSGeorge Liu
48e53193faSGeorge Liu return record;
49e53193faSGeorge Liu }
50e53193faSGeorge Liu
51c6e8fb50SDeepak Kodihalli } // namespace pdr
52c6e8fb50SDeepak Kodihalli } // namespace responder
53c6e8fb50SDeepak Kodihalli } // namespace pldm
54