blob: 801efd5498db147dd690fc6a0787fe84a2bf748e [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;
Dhruvaraj Subhashchandrane0af7202017-07-12 06:35:20 -050019using Value = sdbusplus::message::variant<bool, int64_t, uint8_t,
20 std::string, uint32_t>;
Ratan Guptadcb10672017-07-10 10:33:50 +053021using PropertyMap = std::map<DbusProperty, Value>;
22using ObjectTree = std::map<DbusObjectPath,
23 std::map<DbusService, std::vector<DbusInterface>>>;
Ratan Gupta00659052017-02-23 17:29:08 +053024namespace sensor
25{
26
27using Offset = uint8_t;
Ratan Guptadcb10672017-07-10 10:33:50 +053028using Value = ipmi::Value;
Ratan Gupta00659052017-02-23 17:29:08 +053029
30struct Values
31{
32 Value assert;
33 Value deassert;
34};
35
36using OffsetValueMap = std::map<Offset,Values>;
37
Ratan Guptadcb10672017-07-10 10:33:50 +053038using DbusProperty = ipmi::DbusProperty;
Ratan Gupta00659052017-02-23 17:29:08 +053039using DbusPropertyMap = std::map<DbusProperty,OffsetValueMap>;
40
Ratan Guptadcb10672017-07-10 10:33:50 +053041using DbusInterface = ipmi::DbusInterface;
Ratan Gupta00659052017-02-23 17:29:08 +053042using DbusInterfaceMap = std::map<DbusInterface,DbusPropertyMap>;
43
44using InstancePath = std::string;
45using Type = uint8_t;
46using ReadingType = uint8_t;
Emily Shaffer10f49592017-05-10 12:01:10 -070047using Multiplier = uint16_t;
48using OffsetB = uint16_t;
49using Exponent = uint8_t;
50using ScaledOffset = int64_t;
Ratan Gupta00659052017-02-23 17:29:08 +053051
52struct Info
53{
54 Type sensorType;
55 InstancePath sensorPath;
56 ReadingType sensorReadingType;
Emily Shaffer10f49592017-05-10 12:01:10 -070057 Multiplier coefficientM;
58 OffsetB coefficientB;
59 Exponent exponentB;
60 ScaledOffset scaledOffset;
Dhruvaraj Subhashchandrane0af7202017-07-12 06:35:20 -050061 std::function<uint8_t(SetSensorReadingReq&,const Info&)> updateFunc;
Ratan Gupta00659052017-02-23 17:29:08 +053062 DbusInterfaceMap sensorInterfaces;
63};
64
65using Id = uint8_t;
66using IdInfoMap = std::map<Id,Info>;
67
Ratan Guptadcb10672017-07-10 10:33:50 +053068using PropertyMap = ipmi::PropertyMap;
Tom Josephbe703f72017-03-09 12:34:35 +053069
70using InterfaceMap = std::map<DbusInterface, PropertyMap>;
71
72using Object = sdbusplus::message::object_path;
73using ObjectMap = std::map<Object, InterfaceMap>;
74
Dhruvaraj Subhashchandrane0af7202017-07-12 06:35:20 -050075using IpmiUpdateData = sdbusplus::message::message;
76
Tom Josephdd78a1d2017-05-05 11:04:29 +053077struct SelData
78{
79 Id sensorID;
80 Type sensorType;
81 ReadingType eventReadingType;
82 Offset eventOffset;
83};
84
85using InventoryPath = std::string;
86
87using InvObjectIDMap = std::map<InventoryPath, SelData>;
88
Ratan Gupta00659052017-02-23 17:29:08 +053089}//namespce sensor
90}//namespace ipmi