summaryrefslogtreecommitdiff
path: root/include/ipmitool/ipmi_event.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ipmitool/ipmi_event.h')
-rw-r--r--include/ipmitool/ipmi_event.h32
1 files changed, 28 insertions, 4 deletions
diff --git a/include/ipmitool/ipmi_event.h b/include/ipmitool/ipmi_event.h
index 2ba2fa5..375eb3d 100644
--- a/include/ipmitool/ipmi_event.h
+++ b/include/ipmitool/ipmi_event.h
@@ -30,8 +30,7 @@
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
-#ifndef IPMI_EVENT_H
-#define IPMI_EVENT_H
+#pragma once
#if HAVE_CONFIG_H
# include <config.h>
@@ -61,6 +60,31 @@ struct platform_event_msg {
#pragma pack(0)
#endif
-int ipmi_event_main(struct ipmi_intf *, int, char **);
+/* See IPMI 2.0 Specification, Appendix G, Table G-1, "Event Commands" */
+typedef enum {
+ IPMI_CMD_SET_EVENT_RCVR = 0,
+ IPMI_CMD_GET_EVENT_RCVR,
+ IPMI_CMD_PLATFORM_EVENT
+} ipmi_event_cmd_t;
+
+typedef enum {
+ PLATFORM_EVENT_DATA_LEN_NON_SI = sizeof(struct platform_event_msg),
+ PLATFORM_EVENT_DATA_LEN_SI, /* System interfaces require generator ID */
+ PLATFORM_EVENT_DATA_LEN_MAX = PLATFORM_EVENT_DATA_LEN_SI
+} ipmi_platform_event_data_len_t;
+
+/* See Table 5-4 */
+typedef enum {
+ EVENT_SWID_BIOS_BASE = 0x00, /* BIOS */
+ EVENT_SWID_SMI_BASE = 0x10, /* SMI Handler */
+ EVENT_SWID_SMS_BASE = 0x20, /* System Management Software */
+ EVENT_SWID_OEM_BASE = 0x30, /* OEM */
+ EVENT_SWID_REMOTE_CONSOLE_BASE = 0x40, /* Remote Console SW */
+ EVENT_SWID_TERMINAL_MODE_BASE = 0x47 /* Terminal Mode RC SW */
+} ipmi_event_swid_t;
+#define EVENT_SWID(base, index) ((EVENT_SWID_##base##_BASE + index) & 0x7F)
-#endif /*IPMI_EVENT_H*/
+/* See Figure 29-2, Table 32-1 */
+#define EVENT_GENERATOR(base, index) (EVENT_SWID(base,index) << 1 | 1)
+
+int ipmi_event_main(struct ipmi_intf *, int, char **);