Create library for System Interface Commands.

There are IPMI commands like Read Event Message Buffer, Set BMC Global
Enables and Get Message Flags which is to be executed from host
interface only. So creating a separate library for these commands which
would be used only by phosphor-host-ipmid.

Change-Id: I14cb4019b9ab19c84e463e5a7820010f57f1c5eb
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
diff --git a/systemintfcmds.h b/systemintfcmds.h
new file mode 100644
index 0000000..19526f6
--- /dev/null
+++ b/systemintfcmds.h
@@ -0,0 +1,44 @@
+#ifndef __SYSTEM_INTF_CMDS_HANDLER_H__
+#define __SYSTEM_INTF_CMDS_HANDLER_H__
+
+#include <stdint.h>
+
+// These are per skiboot ipmi-sel code
+
+// OEM_SEL type with Timestamp
+#define SEL_OEM_ID_0        0x55
+// SEL type is OEM and -not- general SEL
+#define SEL_RECORD_TYPE_OEM 0xC0
+// Minor command for soft shurdown
+#define SOFT_OFF            0x00
+// Major command for Any kind of power ops
+#define CMD_POWER           0x04
+
+// IPMI commands used via System Interface functions.
+enum ipmi_netfn_system_intf_cmds
+{
+    IPMI_CMD_SET_BMC_GLOBAL_ENABLES = 0x2E,
+    IPMI_CMD_GET_MSG_FLAGS          = 0x31,
+    IPMI_CMD_READ_EVENT             = 0x35,
+};
+
+// A Mechanism to tell host to shtudown hosts by sending this PEM SEL. Really
+// the only used fields by skiboot are:
+// id[0] / id[1] for ID_0 , ID_1
+// type : SEL_RECORD_TYPE_OEM as standard SELs are ignored by skiboot
+// cmd : CMD_POWER for power functions
+// data[0], specific commands.  example Soft power off. power cycle, etc.
+struct oem_sel_timestamped
+{
+    /* SEL header */
+    uint8_t id[2];
+    uint8_t type;
+    uint8_t manuf_id[3];
+    uint8_t timestamp[4];
+    /* OEM SEL data (6 bytes) follows */
+    uint8_t netfun;
+    uint8_t cmd;
+    uint8_t data[4];
+};
+
+#endif