static void del_event_handler(ipmi_mc_t *mc, void *cb_data) { del_event_info_t *info = cb_data; del_event_info_t *ninfo; ninfo = ipmi_mem_alloc(sizeof(*ninfo)); if (!ninfo) { info->rv = ENOMEM; return; } *ninfo = *info; info->rv = ipmi_mc_del_event(mc, info->event, mc_del_event_done, ninfo); if (info->rv) ipmi_mem_free(ninfo); }
static void clear_sel(ipmi_mc_t *mc, void *cb_data) { struct ohoi_handler *ipmi_handler = cb_data; ipmi_event_t *event; int rv; event = ipmi_mc_first_event(mc); while (event) { ipmi_mc_del_event(mc, event, NULL, NULL); event = ipmi_mc_next_event(mc, event); } /* we're done, now force an sel_reread so delete takes effect */ rv = ipmi_mc_reread_sel(mc, mc_clear_sel_done, &ipmi_handler->sel_clear_done); if (rv) dbg("ipmi_mc_reread_sel failed"); }