diff options
author | Emily Shaffer <emilyshaffer@google.com> | 2017-04-05 09:08:57 -0700 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2017-07-17 15:05:58 -0500 |
commit | d06e0e7e5974af83cb4e424ae9af58e26fc41de8 (patch) | |
tree | 311c8cacff87623ed1027a4e6ff60d00c3617af2 /sensorhandler.h | |
parent | 6edc8a0406bc31fc24f46f15b4db6f7ed0453f8a (diff) | |
download | phosphor-host-ipmid-d06e0e7e5974af83cb4e424ae9af58e26fc41de8.tar.gz phosphor-host-ipmid-d06e0e7e5974af83cb4e424ae9af58e26fc41de8.zip |
sensorhandler: add get_sdr_info
Change-Id: I13c82b62cec1c2f505fa81786fdc60cb38b2a636
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'sensorhandler.h')
-rw-r--r-- | sensorhandler.h | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/sensorhandler.h b/sensorhandler.h index cedb2e4..ef30779 100644 --- a/sensorhandler.h +++ b/sensorhandler.h @@ -6,9 +6,10 @@ // IPMI commands for net functions. enum ipmi_netfn_sen_cmds { + IPMI_CMD_GET_SDR_INFO = 0x20, 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, }; // Discrete sensor types. @@ -53,4 +54,48 @@ struct SetSensorReadingReq uint8_t eventData3; } __attribute__((packed)); +/** + * Get SDR Info + */ + +namespace get_sdr_info +{ +namespace request +{ +// Note: for some reason the ipmi_request_t appears to be the +// raw value for this call. +inline bool get_count(void* req) +{ + return (bool)((uint64_t)(req) & 1); +} +} // namespace request + +namespace response +{ +#define SDR_INFO_RESP_SIZE 2 +inline void set_lun_present(int lun, uint8_t* resp) +{ + *resp |= 1 << lun; +} +inline void set_lun_not_present(int lun, uint8_t* resp) +{ + *resp &= ~(1 << lun); +} +inline void set_dynamic_population(uint8_t* resp) +{ + *resp |= 1 << 7; +} +inline void set_static_population(uint8_t* resp) +{ + *resp &= ~(1 << 7); +} +} // namespace response + +struct GetSdrInfoResp +{ + uint8_t count; + uint8_t luns_and_dynamic_population; +}; + +} // namespace get_sdr_info #endif |