diff options
Diffstat (limited to 'sensorhandler.h')
-rw-r--r-- | sensorhandler.h | 169 |
1 files changed, 82 insertions, 87 deletions
diff --git a/sensorhandler.h b/sensorhandler.h index d6426f6..3f2fd99 100644 --- a/sensorhandler.h +++ b/sensorhandler.h @@ -1,19 +1,21 @@ #ifndef __HOST_IPMI_SEN_HANDLER_H__ #define __HOST_IPMI_SEN_HANDLER_H__ -#include <stdint.h> #include "types.hpp" + +#include <stdint.h> + #include "host-ipmid/ipmid-api.h" // IPMI commands for net functions. enum ipmi_netfn_sen_cmds { IPMI_CMD_GET_DEVICE_SDR_INFO = 0x20, - IPMI_CMD_GET_DEVICE_SDR = 0x21, - IPMI_CMD_RESERVE_DEVICE_SDR_REPO = 0x22, + IPMI_CMD_GET_DEVICE_SDR = 0x21, + IPMI_CMD_RESERVE_DEVICE_SDR_REPO = 0x22, IPMI_CMD_GET_SENSOR_READING = 0x2D, - IPMI_CMD_GET_SENSOR_TYPE = 0x2F, - IPMI_CMD_SET_SENSOR = 0x30, + IPMI_CMD_GET_SENSOR_TYPE = 0x2F, + IPMI_CMD_SET_SENSOR = 0x30, IPMI_CMD_GET_SENSOR_THRESHOLDS = 0x27, }; @@ -30,26 +32,27 @@ enum device_type // Discrete sensor types. enum ipmi_sensor_types { - IPMI_SENSOR_TEMP = 0x01, + IPMI_SENSOR_TEMP = 0x01, IPMI_SENSOR_VOLTAGE = 0x02, IPMI_SENSOR_CURRENT = 0x03, - IPMI_SENSOR_FAN = 0x04, - IPMI_SENSOR_TPM = 0xCC, + IPMI_SENSOR_FAN = 0x04, + IPMI_SENSOR_TPM = 0xCC, }; #define MAX_DBUS_PATH 128 -struct dbus_interface_t { - uint8_t sensornumber; - uint8_t sensortype; +struct dbus_interface_t +{ + uint8_t sensornumber; + uint8_t sensortype; - char bus[MAX_DBUS_PATH]; - char path[MAX_DBUS_PATH]; - char interface[MAX_DBUS_PATH]; + char bus[MAX_DBUS_PATH]; + char path[MAX_DBUS_PATH]; + char interface[MAX_DBUS_PATH]; }; -int set_sensor_dbus_state_s(uint8_t , const char *, const char *); -int set_sensor_dbus_state_y(uint8_t , const char *, const uint8_t); -int find_openbmc_path(uint8_t , dbus_interface_t *); +int set_sensor_dbus_state_s(uint8_t, const char*, const char*); +int set_sensor_dbus_state_y(uint8_t, const char*, const uint8_t); +int find_openbmc_path(uint8_t, dbus_interface_t*); ipmi_ret_t ipmi_sen_get_sdr(ipmi_netfn_t netfn, ipmi_cmd_t cmd, ipmi_request_t request, ipmi_response_t response, @@ -78,7 +81,7 @@ namespace request // raw value for this call. inline bool get_count(void* req) { - return (bool)((uint64_t)(req) & 1); + return (bool)((uint64_t)(req)&1); } } // namespace request @@ -229,19 +232,19 @@ inline void set_owner_id_bmc(SensorDataRecordKey* key) inline void set_owner_id_address(uint8_t addr, SensorDataRecordKey* key) { key->owner_id &= 0x01; - key->owner_id |= addr<<1; + key->owner_id |= addr << 1; }; inline void set_owner_lun(uint8_t lun, SensorDataRecordKey* key) { key->owner_lun &= ~0x03; - key->owner_lun |= (lun&0x03); + key->owner_lun |= (lun & 0x03); }; inline void set_owner_lun_channel(uint8_t channel, SensorDataRecordKey* key) { key->owner_lun &= 0x0f; - key->owner_lun |= ((channel & 0xf)<<4); + key->owner_lun |= ((channel & 0xf) << 4); }; } // namespace key @@ -252,13 +255,13 @@ inline void set_owner_lun_channel(uint8_t channel, SensorDataRecordKey* key) */ struct GetSensorThresholdsResponse { - uint8_t validMask; //!< valid mask - uint8_t lowerNonCritical; //!< lower non-critical threshold - uint8_t lowerCritical; //!< lower critical threshold - uint8_t lowerNonRecoverable;//!< lower non-recoverable threshold - uint8_t upperNonCritical; //!< upper non-critical threshold - uint8_t upperCritical; //!< upper critical threshold - uint8_t upperNonRecoverable;//!< upper non-recoverable threshold + uint8_t validMask; //!< valid mask + uint8_t lowerNonCritical; //!< lower non-critical threshold + uint8_t lowerCritical; //!< lower critical threshold + uint8_t lowerNonRecoverable; //!< lower non-recoverable threshold + uint8_t upperNonCritical; //!< upper non-critical threshold + uint8_t upperCritical; //!< upper critical threshold + uint8_t upperNonRecoverable; //!< upper non-recoverable threshold } __attribute__((packed)); // Body - full record @@ -274,8 +277,8 @@ struct SensorDataFullRecordBody uint8_t sensor_capabilities; // no macro support uint8_t sensor_type; uint8_t event_reading_type; - uint8_t supported_assertions[2]; // no macro support - uint8_t supported_deassertions[2]; // no macro support + uint8_t supported_assertions[2]; // no macro support + uint8_t supported_deassertions[2]; // no macro support uint8_t discrete_reading_setting_mask[2]; // no macro support uint8_t sensor_units_1; uint8_t sensor_units_2_base; @@ -287,7 +290,7 @@ struct SensorDataFullRecordBody uint8_t b_msb_and_accuracy_lsb; uint8_t accuracy_and_sensor_direction; uint8_t r_b_exponents; - uint8_t analog_characteristic_flags; //no macro support + uint8_t analog_characteristic_flags; // no macro support uint8_t nominal_reading; uint8_t normal_max; uint8_t normal_min; @@ -329,145 +332,137 @@ namespace body inline void set_entity_instance_number(uint8_t n, SensorDataFullRecordBody* body) { - body->entity_instance &= 1<<7; - body->entity_instance |= (n & ~(1<<7)); + body->entity_instance &= 1 << 7; + body->entity_instance |= (n & ~(1 << 7)); }; inline void set_entity_physical_entity(SensorDataFullRecordBody* body) { - body->entity_instance &= ~(1<<7); + body->entity_instance &= ~(1 << 7); }; inline void set_entity_logical_container(SensorDataFullRecordBody* body) { - body->entity_instance |= 1<<7; + body->entity_instance |= 1 << 7; }; -inline void sensor_scanning_state(bool enabled, - SensorDataFullRecordBody* body) +inline void sensor_scanning_state(bool enabled, SensorDataFullRecordBody* body) { if (enabled) { - body->sensor_initialization |= 1<<0; + body->sensor_initialization |= 1 << 0; } else { - body->sensor_initialization &= ~(1<<0); + body->sensor_initialization &= ~(1 << 0); }; }; -inline void event_generation_state(bool enabled, - SensorDataFullRecordBody* body) +inline void event_generation_state(bool enabled, SensorDataFullRecordBody* body) { if (enabled) { - body->sensor_initialization |= 1<<1; + body->sensor_initialization |= 1 << 1; } else { - body->sensor_initialization &= ~(1<<1); + body->sensor_initialization &= ~(1 << 1); } }; -inline void init_types_state(bool enabled, - SensorDataFullRecordBody* body) +inline void init_types_state(bool enabled, SensorDataFullRecordBody* body) { if (enabled) { - body->sensor_initialization |= 1<<2; + body->sensor_initialization |= 1 << 2; } else { - body->sensor_initialization &= ~(1<<2); + body->sensor_initialization &= ~(1 << 2); } }; -inline void init_hyst_state(bool enabled, - SensorDataFullRecordBody* body) +inline void init_hyst_state(bool enabled, SensorDataFullRecordBody* body) { if (enabled) { - body->sensor_initialization |= 1<<3; + body->sensor_initialization |= 1 << 3; } else { - body->sensor_initialization &= ~(1<<3); + body->sensor_initialization &= ~(1 << 3); } }; -inline void init_thresh_state(bool enabled, - SensorDataFullRecordBody* body) +inline void init_thresh_state(bool enabled, SensorDataFullRecordBody* body) { if (enabled) { - body->sensor_initialization |= 1<<4; + body->sensor_initialization |= 1 << 4; } else { - body->sensor_initialization &= ~(1<<4); + body->sensor_initialization &= ~(1 << 4); } }; -inline void init_events_state(bool enabled, - SensorDataFullRecordBody* body) +inline void init_events_state(bool enabled, SensorDataFullRecordBody* body) { if (enabled) { - body->sensor_initialization |= 1<<5; + body->sensor_initialization |= 1 << 5; } else { - body->sensor_initialization &= ~(1<<5); + body->sensor_initialization &= ~(1 << 5); } }; -inline void init_scanning_state(bool enabled, - SensorDataFullRecordBody* body) +inline void init_scanning_state(bool enabled, SensorDataFullRecordBody* body) { if (enabled) { - body->sensor_initialization |= 1<<6; + body->sensor_initialization |= 1 << 6; } else { - body->sensor_initialization &= ~(1<<6); + body->sensor_initialization &= ~(1 << 6); } }; -inline void init_settable_state(bool enabled, - SensorDataFullRecordBody* body) +inline void init_settable_state(bool enabled, SensorDataFullRecordBody* body) { if (enabled) { - body->sensor_initialization |= 1<<7; + body->sensor_initialization |= 1 << 7; } else { - body->sensor_initialization &= ~(1<<7); + body->sensor_initialization &= ~(1 << 7); } }; inline void set_percentage(SensorDataFullRecordBody* body) { - body->sensor_units_1 |= 1<<0; + body->sensor_units_1 |= 1 << 0; }; inline void unset_percentage(SensorDataFullRecordBody* body) { - body->sensor_units_1 &= ~(1<<0); + body->sensor_units_1 &= ~(1 << 0); }; inline void set_modifier_operation(uint8_t op, SensorDataFullRecordBody* body) { - body->sensor_units_1 &= ~(3<<1); - body->sensor_units_1 |= (op & 0x3)<<1; + body->sensor_units_1 &= ~(3 << 1); + body->sensor_units_1 |= (op & 0x3) << 1; }; inline void set_rate_unit(uint8_t unit, SensorDataFullRecordBody* body) { - body->sensor_units_1 &= ~(7<<3); - body->sensor_units_1 |= (unit & 0x7)<<3; + body->sensor_units_1 &= ~(7 << 3); + body->sensor_units_1 |= (unit & 0x7) << 3; }; inline void set_analog_data_format(uint8_t format, SensorDataFullRecordBody* body) { - body->sensor_units_1 &= ~(3<<6); - body->sensor_units_1 |= (format & 0x3)<<6; + body->sensor_units_1 &= ~(3 << 6); + body->sensor_units_1 |= (format & 0x3) << 6; }; inline void set_m(uint16_t m, SensorDataFullRecordBody* body) { body->m_lsb = m & 0xff; - body->m_msb_and_tolerance &= ~(3<<6); - body->m_msb_and_tolerance |= ((m & (3<<8)) >> 2); + body->m_msb_and_tolerance &= ~(3 << 6); + body->m_msb_and_tolerance |= ((m & (3 << 8)) >> 2); }; inline void set_tolerance(uint8_t tol, SensorDataFullRecordBody* body) { @@ -478,8 +473,8 @@ inline void set_tolerance(uint8_t tol, SensorDataFullRecordBody* body) inline void set_b(uint16_t b, SensorDataFullRecordBody* body) { body->b_lsb = b & 0xff; - body->b_msb_and_accuracy_lsb &= ~(3<<6); - body->b_msb_and_accuracy_lsb |= ((b & (3<<8)) >> 2); + body->b_msb_and_accuracy_lsb &= ~(3 << 6); + body->b_msb_and_accuracy_lsb |= ((b & (3 << 8)) >> 2); }; inline void set_accuracy(uint16_t acc, SensorDataFullRecordBody* body) { @@ -492,12 +487,12 @@ inline void set_accuracy(uint16_t acc, SensorDataFullRecordBody* body) }; inline void set_accuracy_exp(uint8_t exp, SensorDataFullRecordBody* body) { - body->accuracy_and_sensor_direction &= ~(3<<2); - body->accuracy_and_sensor_direction |= (exp & 3)<<2; + body->accuracy_and_sensor_direction &= ~(3 << 2); + body->accuracy_and_sensor_direction |= (exp & 3) << 2; }; inline void set_sensor_dir(uint8_t dir, SensorDataFullRecordBody* body) { - body->accuracy_and_sensor_direction &= ~(3<<0); + body->accuracy_and_sensor_direction &= ~(3 << 0); body->accuracy_and_sensor_direction |= (dir & 3); }; @@ -509,7 +504,7 @@ inline void set_b_exp(uint8_t exp, SensorDataFullRecordBody* body) inline void set_r_exp(uint8_t exp, SensorDataFullRecordBody* body) { body->r_b_exponents &= 0x0f; - body->r_b_exponents |= (exp & 0x0f)<<4; + body->r_b_exponents |= (exp & 0x0f) << 4; }; inline void set_id_strlen(uint8_t len, SensorDataFullRecordBody* body) @@ -517,14 +512,14 @@ inline void set_id_strlen(uint8_t len, SensorDataFullRecordBody* body) body->id_string_info &= ~(0x1f); body->id_string_info |= len & 0x1f; }; -inline uint8_t get_id_strlen( SensorDataFullRecordBody* body) +inline uint8_t get_id_strlen(SensorDataFullRecordBody* body) { return body->id_string_info & 0x1f; }; inline void set_id_type(uint8_t type, SensorDataFullRecordBody* body) { - body->id_string_info &= ~(3<<6); - body->id_string_info |= (type & 0x3)<<6; + body->id_string_info &= ~(3 << 6); + body->id_string_info |= (type & 0x3) << 6; }; inline void set_device_id_strlen(uint8_t len, SensorDataFruRecordBody* body) @@ -577,7 +572,7 @@ struct SensorDataFruRecord SensorDataFruRecordBody body; } __attribute__((packed)); -} // get_sdr +} // namespace get_sdr namespace ipmi { |