Fix IPMI SEL reservations and cancellations
Per the IPMI Spec, the SEL must be reserved to
Delete an entry
Clear the SEL
Get a partial entry
Add a partial entry
The current SEL reservation must be cancelled when
A SEL entry is added
A SEL entry is deleted
The SEL is cleared
The device is reset
A new reservation is requested
This change adds a reservation status to track when a reservation
is active and a method to cancel the current reservation, and it
uses that to cancel the reservation in the Delete, Clear, and Add
SEL methods.
Change-Id: Ifd72e6d06ecc622855bd9ce8cc3928cbd0f2c34b
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
diff --git a/host-ipmid/ipmid-api.h b/host-ipmid/ipmid-api.h
index 820776a..e77e720 100644
--- a/host-ipmid/ipmid-api.h
+++ b/host-ipmid/ipmid-api.h
@@ -1,5 +1,6 @@
#ifndef __HOST_IPMID_IPMI_COMMON_H__
#define __HOST_IPMID_IPMI_COMMON_H__
+#include <stdbool.h>
#include <stdlib.h>
#include <systemd/sd-bus.h>
@@ -77,7 +78,9 @@
void ipmi_register_callback(ipmi_netfn_t, ipmi_cmd_t, ipmi_context_t,
ipmid_callback_t, ipmi_cmd_privilege_t);
-unsigned short get_sel_reserve_id(void);
+unsigned short reserveSel(void);
+bool checkSELReservation(unsigned short id);
+void cancelSELReservation(void);
// These are the command network functions, the response
// network functions are the function + 1. So to determine