From 3a383608dd8bdb7c705e1ccdaa67925fdb66d035 Mon Sep 17 00:00:00 2001 From: Zdenek Styblik Date: Fri, 29 Mar 2013 18:45:16 +0000 Subject: [PATCH] ID: 3609473 - Add assertion/deassertion to threshold events The event data and SDRs support assertions and deassertions for threshold events as well as discrete events. So print out assertion and deassertion on all events. Commit for Corey Minyard --- ipmitool/lib/ipmi_sel.c | 18 +++++++++--------- ipmitool/src/ipmievd.c | 34 ++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/ipmitool/lib/ipmi_sel.c b/ipmitool/lib/ipmi_sel.c index 2c0e2ac..0b09d3b 100644 --- a/ipmitool/lib/ipmi_sel.c +++ b/ipmitool/lib/ipmi_sel.c @@ -1720,16 +1720,16 @@ ipmi_sel_print_std_entry(struct ipmi_intf * intf, struct sel_event_record * evt) description = NULL; } - if (evt->sel_type.standard_type.event_type == 0x6f) { - if (csv_output) - printf(","); - else - printf(" | "); + if (csv_output) { + printf(","); + } else { + printf(" | "); + } - if (evt->sel_type.standard_type.event_dir) - printf("Deasserted"); - else - printf("Asserted"); + if (evt->sel_type.standard_type.event_dir) { + printf("Deasserted"); + } else { + printf("Asserted"); } if (sdr != NULL && evt->sel_type.standard_type.event_type == 1) { diff --git a/ipmitool/src/ipmievd.c b/ipmitool/src/ipmievd.c index bf242e7..f940579 100644 --- a/ipmitool/src/ipmievd.c +++ b/ipmitool/src/ipmievd.c @@ -279,11 +279,13 @@ log_event(struct ipmi_event_intf * eintf, struct sel_event_record * evt) sdr->record.full, evt->sel_type.standard_type.event_data[2]); } - lprintf(LOG_NOTICE, "%s%s sensor %s %s (Reading %.*f %s Threshold %.*f %s)", + lprintf(LOG_NOTICE, "%s%s sensor %s %s %s (Reading %.*f %s Threshold %.*f %s)", eintf->prefix, type, sdr->record.full->id_string, desc ? : "", + (evt->sel_type.standard_type.event_dir + ? "Deasserted" : "Asserted"), (trigger_reading==(int)trigger_reading) ? 0 : 2, trigger_reading, ((evt->sel_type.standard_type.event_data[0] & 0xf) % 2) ? ">" : "<", @@ -299,8 +301,11 @@ log_event(struct ipmi_event_intf * eintf, struct sel_event_record * evt) /* * Discrete Event */ - lprintf(LOG_NOTICE, "%s%s sensor %s %s", - eintf->prefix, type, sdr->record.full->id_string, desc ? : ""); + lprintf(LOG_NOTICE, "%s%s sensor %s %s %s", + eintf->prefix, type, + sdr->record.full->id_string, desc ? : "", + (evt->sel_type.standard_type.event_dir + ? "Deasserted" : "Asserted")); if (((evt->sel_type.standard_type.event_data[0] >> 6) & 3) == 1) { /* previous state and/or severity in event data byte 2 */ } @@ -309,23 +314,20 @@ log_event(struct ipmi_event_intf * eintf, struct sel_event_record * evt) /* * OEM Event */ - lprintf(LOG_NOTICE, "%s%s sensor %s %s", - eintf->prefix, type, sdr->record.full->id_string, desc ? : ""); + lprintf(LOG_NOTICE, "%s%s sensor %s %s %s", + eintf->prefix, type, + sdr->record.full->id_string, desc ? : "", + (evt->sel_type.standard_type.event_dir + ? "Deasserted" : "Asserted")); } break; case SDR_RECORD_TYPE_COMPACT_SENSOR: - if (evt->sel_type.standard_type.event_type == 0x6f) { - lprintf(LOG_NOTICE, "%s%s sensor %s - %s %s", - eintf->prefix, - type, sdr->record.compact->id_string, - desc ? : "", - evt->sel_type.standard_type.event_dir ? "Deasserted" : "Asserted"); - } else { - lprintf(LOG_NOTICE, "%s%s sensor %s - %s", - eintf->prefix, type, - sdr->record.compact->id_string, desc ? : ""); - } + lprintf(LOG_NOTICE, "%s%s sensor %s - %s %s", + eintf->prefix, type, + sdr->record.compact->id_string, desc ? : "", + (evt->sel_type.standard_type.event_dir + ? "Deasserted" : "Asserted")); break; default: