blob: cedb2e46d2f2a6e5210e4dff31876ce0abc800d4 [file] [log] [blame]
Chris Austenac4604a2015-10-13 12:43:27 -05001#ifndef __HOST_IPMI_SEN_HANDLER_H__
2#define __HOST_IPMI_SEN_HANDLER_H__
3
Chris Austen0012e9b2015-10-22 01:37:46 -05004#include <stdint.h>
5
Chris Austenac4604a2015-10-13 12:43:27 -05006// IPMI commands for net functions.
7enum ipmi_netfn_sen_cmds
8{
Chris Austen10ccc0f2015-12-10 18:27:04 -06009 IPMI_CMD_GET_SENSOR_READING = 0x2D,
Chris Austenac4604a2015-10-13 12:43:27 -050010 IPMI_CMD_GET_SENSOR_TYPE = 0x2F,
11 IPMI_CMD_SET_SENSOR = 0x30,
Chris Austenac4604a2015-10-13 12:43:27 -050012};
13
Emily Shaffer1fabf222017-04-05 08:53:21 -070014// Discrete sensor types.
15enum ipmi_sensor_types
16{
17 IPMI_SENSOR_TEMP = 0x01,
18 IPMI_SENSOR_VOLTAGE = 0x02,
19 IPMI_SENSOR_CURRENT = 0x03,
20 IPMI_SENSOR_FAN = 0x04,
21};
22
Chris Austen0012e9b2015-10-22 01:37:46 -050023#define MAX_DBUS_PATH 128
24struct dbus_interface_t {
25 uint8_t sensornumber;
26 uint8_t sensortype;
27
28 char bus[MAX_DBUS_PATH];
29 char path[MAX_DBUS_PATH];
30 char interface[MAX_DBUS_PATH];
31};
Tomd700e762016-09-20 18:24:13 +053032
33int set_sensor_dbus_state_s(uint8_t , const char *, const char *);
34int set_sensor_dbus_state_y(uint8_t , const char *, const uint8_t);
Emily Shaffer2ae09b92017-04-05 15:09:41 -070035int find_openbmc_path(uint8_t , dbus_interface_t *);
Tom05732372016-09-06 17:21:23 +053036
Tom Josephbe703f72017-03-09 12:34:35 +053037/**
38 * @struct SetSensorReadingReq
39 *
40 * IPMI Request data for Set Sensor Reading and Event Status Command
41 */
42struct SetSensorReadingReq
43{
44 uint8_t number;
45 uint8_t operation;
46 uint8_t reading;
47 uint8_t assertOffset0_7;
48 uint8_t assertOffset8_14;
49 uint8_t deassertOffset0_7;
50 uint8_t deassertOffset8_14;
51 uint8_t eventData1;
52 uint8_t eventData2;
53 uint8_t eventData3;
54} __attribute__((packed));
55
Chris Austenac4604a2015-10-13 12:43:27 -050056#endif