blob: d6fa9884b6f6a9684a17c2bd6f451626a450971a [file] [log] [blame]
Ratan Gupta00659052017-02-23 17:29:08 +05301#pragma once
2
3#include <stdint.h>
4
5#include <map>
6#include <string>
7
8#include <sdbusplus/server.hpp>
9
10namespace ipmi
11{
Ratan Guptadcb10672017-07-10 10:33:50 +053012
13using DbusObjectPath = std::string;
14using DbusService = std::string;
15using DbusInterface = std::string;
16using DbusObjectInfo = std::pair<DbusObjectPath, DbusService>;
17using DbusProperty = std::string;
18using Value = sdbusplus::message::variant<bool, int64_t, uint8_t, std::string>;
19using PropertyMap = std::map<DbusProperty, Value>;
20using ObjectTree = std::map<DbusObjectPath,
21 std::map<DbusService, std::vector<DbusInterface>>>;
Ratan Gupta00659052017-02-23 17:29:08 +053022namespace sensor
23{
24
25using Offset = uint8_t;
Ratan Guptadcb10672017-07-10 10:33:50 +053026using Value = ipmi::Value;
Ratan Gupta00659052017-02-23 17:29:08 +053027
28struct Values
29{
30 Value assert;
31 Value deassert;
32};
33
34using OffsetValueMap = std::map<Offset,Values>;
35
Ratan Guptadcb10672017-07-10 10:33:50 +053036using DbusProperty = ipmi::DbusProperty;
Ratan Gupta00659052017-02-23 17:29:08 +053037using DbusPropertyMap = std::map<DbusProperty,OffsetValueMap>;
38
Ratan Guptadcb10672017-07-10 10:33:50 +053039using DbusInterface = ipmi::DbusInterface;
Ratan Gupta00659052017-02-23 17:29:08 +053040using DbusInterfaceMap = std::map<DbusInterface,DbusPropertyMap>;
41
42using InstancePath = std::string;
43using Type = uint8_t;
44using ReadingType = uint8_t;
Emily Shaffer10f49592017-05-10 12:01:10 -070045using Multiplier = uint16_t;
46using OffsetB = uint16_t;
47using Exponent = uint8_t;
48using ScaledOffset = int64_t;
Ratan Gupta00659052017-02-23 17:29:08 +053049
50struct Info
51{
52 Type sensorType;
53 InstancePath sensorPath;
54 ReadingType sensorReadingType;
Emily Shaffer10f49592017-05-10 12:01:10 -070055 Multiplier coefficientM;
56 OffsetB coefficientB;
57 Exponent exponentB;
58 ScaledOffset scaledOffset;
Ratan Gupta00659052017-02-23 17:29:08 +053059 DbusInterfaceMap sensorInterfaces;
60};
61
62using Id = uint8_t;
63using IdInfoMap = std::map<Id,Info>;
64
Ratan Guptadcb10672017-07-10 10:33:50 +053065using PropertyMap = ipmi::PropertyMap;
Tom Josephbe703f72017-03-09 12:34:35 +053066
67using InterfaceMap = std::map<DbusInterface, PropertyMap>;
68
69using Object = sdbusplus::message::object_path;
70using ObjectMap = std::map<Object, InterfaceMap>;
71
Tom Josephdd78a1d2017-05-05 11:04:29 +053072struct SelData
73{
74 Id sensorID;
75 Type sensorType;
76 ReadingType eventReadingType;
77 Offset eventOffset;
78};
79
80using InventoryPath = std::string;
81
82using InvObjectIDMap = std::map<InventoryPath, SelData>;
83
Ratan Gupta00659052017-02-23 17:29:08 +053084}//namespce sensor
85}//namespace ipmi