summaryrefslogtreecommitdiffstats
path: root/sensorhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sensorhandler.cpp')
-rw-r--r--sensorhandler.cpp55
1 files changed, 42 insertions, 13 deletions
diff --git a/sensorhandler.cpp b/sensorhandler.cpp
index c1657da..da6cfd9 100644
--- a/sensorhandler.cpp
+++ b/sensorhandler.cpp
@@ -24,7 +24,6 @@ struct sensorTypemap_t {
char dbusname[32];
} ;
-
sensorTypemap_t g_SensorTypeMap[] = {
{0x01, 0x6F, "Temp"},
@@ -695,32 +694,62 @@ ipmi_ret_t ipmi_sen_get_sdr_info(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
return IPMI_CC_OK;
}
+ipmi_ret_t ipmi_sen_reserve_sdr(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
+ ipmi_request_t request,
+ ipmi_response_t response,
+ ipmi_data_len_t data_len,
+ ipmi_context_t context)
+{
+ // A constant reservation ID is okay until we implement add/remove SDR.
+ const uint16_t reservation_id = 1;
+ *(uint16_t*)response = reservation_id;
+
+ printf("Created new IPMI SDR reservation ID %d\n", *(uint16_t*)response);
+ return IPMI_CC_OK;
+}
void register_netfn_sen_functions()
{
// <Wildcard Command>
- printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",NETFUN_SENSOR, IPMI_CMD_WILDCARD);
- ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_WILDCARD, NULL, ipmi_sen_wildcard,
+ printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",
+ NETFUN_SENSOR, IPMI_CMD_WILDCARD);
+ ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_WILDCARD,
+ nullptr, ipmi_sen_wildcard,
PRIVILEGE_USER);
// <Get Sensor Type>
- printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",NETFUN_SENSOR, IPMI_CMD_GET_SENSOR_TYPE);
- ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_GET_SENSOR_TYPE, NULL, ipmi_sen_get_sensor_type,
+ printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",
+ NETFUN_SENSOR, IPMI_CMD_GET_SENSOR_TYPE);
+ ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_GET_SENSOR_TYPE,
+ nullptr, ipmi_sen_get_sensor_type,
PRIVILEGE_USER);
// <Set Sensor Reading and Event Status>
- printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",NETFUN_SENSOR, IPMI_CMD_SET_SENSOR);
- ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_SET_SENSOR, NULL, ipmi_sen_set_sensor,
+ printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",
+ NETFUN_SENSOR, IPMI_CMD_SET_SENSOR);
+ ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_SET_SENSOR,
+ nullptr, ipmi_sen_set_sensor,
PRIVILEGE_OPERATOR);
// <Get Sensor Reading>
- printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",NETFUN_SENSOR, IPMI_CMD_GET_SENSOR_READING);
- ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_GET_SENSOR_READING, NULL,
- ipmi_sen_get_sensor_reading, PRIVILEGE_USER);
+ printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",
+ NETFUN_SENSOR, IPMI_CMD_GET_SENSOR_READING);
+ ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_GET_SENSOR_READING,
+ nullptr, ipmi_sen_get_sensor_reading,
+ PRIVILEGE_USER);
+
+ // <Reserve SDR>
+ printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",
+ NETFUN_SENSOR, IPMI_CMD_RESERVE_SDR_REPO);
+ ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_RESERVE_SDR_REPO,
+ nullptr, ipmi_sen_reserve_sdr,
+ PRIVILEGE_USER);
// <Get SDR Info>
- printf("Registering NetFn:[0x%X], Cmd:[0x%x]\n",NETFUN_SENSOR, IPMI_CMD_GET_SDR_INFO);
- ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_GET_SDR_INFO, NULL,
- ipmi_sen_get_sdr_info, PRIVILEGE_USER);
+ printf("Registering NetFn:[0x%X], Cmd:[0x%x]\n",
+ NETFUN_SENSOR, IPMI_CMD_GET_SDR_INFO);
+ ipmi_register_callback(NETFUN_SENSOR, IPMI_CMD_GET_SDR_INFO,
+ nullptr, ipmi_sen_get_sdr_info,
+ PRIVILEGE_USER);
return;
}
OpenPOWER on IntegriCloud