xref: /openbmc/phosphor-host-ipmid/fruread.hpp (revision 46470a38d0a3b8f29cd8efc4af8a76adcace524a)
1 #pragma once
2 
3 #include <systemd/sd-bus.h>
4 
5 #include <array>
6 #include <map>
7 #include <string>
8 #include <vector>
9 
10 struct IPMIFruData
11 {
12     std::string section;
13     std::string property;
14     std::string delimiter;
15 };
16 
17 using DbusProperty = std::string;
18 using DbusPropertyVec = std::vector<std::pair<DbusProperty, IPMIFruData>>;
19 
20 using DbusInterface = std::string;
21 using DbusInterfaceVec = std::vector<std::pair<DbusInterface, DbusPropertyVec>>;
22 
23 using FruInstancePath = std::string;
24 
25 struct FruInstance
26 {
27     uint8_t entityID;
28     uint8_t entityInstance;
29     FruInstancePath path;
30     DbusInterfaceVec interfaces;
31 };
32 
33 using FruInstanceVec = std::vector<FruInstance>;
34 
35 using FruId = uint32_t;
36 using FruMap = std::map<FruId, FruInstanceVec>;
37