blob: afe479ed6bbb848b45106e789e5582bf126795f3 [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>
Dhruvaraj Subhashchandrane0af7202017-07-12 06:35:20 -05009#include "sensorhandler.h"
Ratan Gupta00659052017-02-23 17:29:08 +053010
11namespace ipmi
12{
Ratan Guptadcb10672017-07-10 10:33:50 +053013
14using DbusObjectPath = std::string;
15using DbusService = std::string;
16using DbusInterface = std::string;
17using DbusObjectInfo = std::pair<DbusObjectPath, DbusService>;
18using DbusProperty = std::string;
Ratan Guptacc8feb42017-07-25 21:52:10 +053019
20using Value = sdbusplus::message::variant<bool, uint8_t, int16_t,
21 uint16_t, int32_t, uint32_t,
22 int64_t, uint64_t, std::string>;
23
Ratan Guptadcb10672017-07-10 10:33:50 +053024using PropertyMap = std::map<DbusProperty, Value>;
25using ObjectTree = std::map<DbusObjectPath,
26 std::map<DbusService, std::vector<DbusInterface>>>;
Ratan Gupta00659052017-02-23 17:29:08 +053027namespace sensor
28{
29
30using Offset = uint8_t;
Ratan Guptadcb10672017-07-10 10:33:50 +053031using Value = ipmi::Value;
Ratan Gupta00659052017-02-23 17:29:08 +053032
33struct Values
34{
35 Value assert;
36 Value deassert;
37};
38
39using OffsetValueMap = std::map<Offset,Values>;
40
Ratan Guptadcb10672017-07-10 10:33:50 +053041using DbusProperty = ipmi::DbusProperty;
Ratan Gupta00659052017-02-23 17:29:08 +053042using DbusPropertyMap = std::map<DbusProperty,OffsetValueMap>;
43
Ratan Guptadcb10672017-07-10 10:33:50 +053044using DbusInterface = ipmi::DbusInterface;
Ratan Gupta00659052017-02-23 17:29:08 +053045using DbusInterfaceMap = std::map<DbusInterface,DbusPropertyMap>;
46
47using InstancePath = std::string;
48using Type = uint8_t;
49using ReadingType = uint8_t;
Emily Shaffer10f49592017-05-10 12:01:10 -070050using Multiplier = uint16_t;
51using OffsetB = uint16_t;
52using Exponent = uint8_t;
53using ScaledOffset = int64_t;
Ratan Gupta00659052017-02-23 17:29:08 +053054
55struct Info
56{
57 Type sensorType;
58 InstancePath sensorPath;
59 ReadingType sensorReadingType;
Emily Shaffer10f49592017-05-10 12:01:10 -070060 Multiplier coefficientM;
61 OffsetB coefficientB;
62 Exponent exponentB;
63 ScaledOffset scaledOffset;
Dhruvaraj Subhashchandrane0af7202017-07-12 06:35:20 -050064 std::function<uint8_t(SetSensorReadingReq&,const Info&)> updateFunc;
Ratan Gupta00659052017-02-23 17:29:08 +053065 DbusInterfaceMap sensorInterfaces;
66};
67
68using Id = uint8_t;
69using IdInfoMap = std::map<Id,Info>;
70
Ratan Guptadcb10672017-07-10 10:33:50 +053071using PropertyMap = ipmi::PropertyMap;
Tom Josephbe703f72017-03-09 12:34:35 +053072
73using InterfaceMap = std::map<DbusInterface, PropertyMap>;
74
75using Object = sdbusplus::message::object_path;
76using ObjectMap = std::map<Object, InterfaceMap>;
77
Dhruvaraj Subhashchandrane0af7202017-07-12 06:35:20 -050078using IpmiUpdateData = sdbusplus::message::message;
79
Tom Josephdd78a1d2017-05-05 11:04:29 +053080struct SelData
81{
82 Id sensorID;
83 Type sensorType;
84 ReadingType eventReadingType;
85 Offset eventOffset;
86};
87
88using InventoryPath = std::string;
89
90using InvObjectIDMap = std::map<InventoryPath, SelData>;
91
Ratan Gupta00659052017-02-23 17:29:08 +053092}//namespce sensor
93}//namespace ipmi