From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44837) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRRpN-000708-6X for qemu-devel@nongnu.org; Thu, 04 Feb 2016 16:52:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aRRpL-0005OD-In for qemu-devel@nongnu.org; Thu, 04 Feb 2016 16:52:37 -0500 Received: from mx1.redhat.com ([209.132.183.28]:58522) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRRpL-0005O2-A8 for qemu-devel@nongnu.org; Thu, 04 Feb 2016 16:52:35 -0500 Date: Thu, 4 Feb 2016 23:52:30 +0200 From: "Michael S. Tsirkin" Message-ID: <1454612376-7072-24-git-send-email-mst@redhat.com> References: <1454612376-7072-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1454612376-7072-1-git-send-email-mst@redhat.com> Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL 23/49] ipmi: add get and set SENSOR_TYPE commands List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , =?us-ascii?B?PT9VVEYtOD9xP0M9QzM9QTlkcmljPTIwTGU9MjBHb2F0ZXI/PQ==?= , Eduardo Habkost , Greg Kurz , Corey Minyard From: C=E9dric Le Goater Signed-off-by: C=E9dric Le Goater Acked-by: Corey Minyard Reviewed-by: Greg Kurz Acked-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/ipmi/ipmi_bmc_sim.c | 45 ++++++++++++++++++++++++++++++++++++++++++++= - 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c index 84fbcd2..24a4b32 100644 --- a/hw/ipmi/ipmi_bmc_sim.c +++ b/hw/ipmi/ipmi_bmc_sim.c @@ -40,6 +40,8 @@ #define IPMI_CMD_REARM_SENSOR_EVTS 0x2a #define IPMI_CMD_GET_SENSOR_EVT_STATUS 0x2b #define IPMI_CMD_GET_SENSOR_READING 0x2d +#define IPMI_CMD_SET_SENSOR_TYPE 0x2e +#define IPMI_CMD_GET_SENSOR_TYPE 0x2f =20 /* #define IPMI_NETFN_APP 0x06 In ipmi.h */ =20 @@ -1526,6 +1528,45 @@ static void get_sensor_reading(IPMIBmcSim *ibs, } } =20 +static void set_sensor_type(IPMIBmcSim *ibs, + uint8_t *cmd, unsigned int cmd_len, + uint8_t *rsp, unsigned int *rsp_len, + unsigned int max_rsp_len) +{ + IPMISensor *sens; + + + IPMI_CHECK_CMD_LEN(5); + if ((cmd[2] > MAX_SENSORS) || + !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { + rsp[2] =3D IPMI_CC_REQ_ENTRY_NOT_PRESENT; + return; + } + sens =3D ibs->sensors + cmd[2]; + sens->sensor_type =3D cmd[3]; + sens->evt_reading_type_code =3D cmd[4] & 0x7f; +} + +static void get_sensor_type(IPMIBmcSim *ibs, + uint8_t *cmd, unsigned int cmd_len, + uint8_t *rsp, unsigned int *rsp_len, + unsigned int max_rsp_len) +{ + IPMISensor *sens; + + + IPMI_CHECK_CMD_LEN(3); + if ((cmd[2] > MAX_SENSORS) || + !IPMI_SENSOR_GET_PRESENT(ibs->sensors + cmd[2])) { + rsp[2] =3D IPMI_CC_REQ_ENTRY_NOT_PRESENT; + return; + } + sens =3D ibs->sensors + cmd[2]; + IPMI_ADD_RSP_DATA(sens->sensor_type); + IPMI_ADD_RSP_DATA(sens->evt_reading_type_code); +} + + static const IPMICmdHandler chassis_cmds[] =3D { [IPMI_CMD_GET_CHASSIS_CAPABILITIES] =3D chassis_capabilities, [IPMI_CMD_GET_CHASSIS_STATUS] =3D chassis_status, @@ -1541,7 +1582,9 @@ static const IPMICmdHandler sensor_event_cmds[] =3D= { [IPMI_CMD_GET_SENSOR_EVT_ENABLE] =3D get_sensor_evt_enable, [IPMI_CMD_REARM_SENSOR_EVTS] =3D rearm_sensor_evts, [IPMI_CMD_GET_SENSOR_EVT_STATUS] =3D get_sensor_evt_status, - [IPMI_CMD_GET_SENSOR_READING] =3D get_sensor_reading + [IPMI_CMD_GET_SENSOR_READING] =3D get_sensor_reading, + [IPMI_CMD_SET_SENSOR_TYPE] =3D set_sensor_type, + [IPMI_CMD_GET_SENSOR_TYPE] =3D get_sensor_type, }; static const IPMINetfn sensor_event_netfn =3D { .cmd_nums =3D ARRAY_SIZE(sensor_event_cmds), --=20 MST