summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/elog.h1
-rw-r--r--src/include/smbios.h31
2 files changed, 32 insertions, 0 deletions
diff --git a/src/include/elog.h b/src/include/elog.h
index c6599a249c..897a90bf41 100644
--- a/src/include/elog.h
+++ b/src/include/elog.h
@@ -113,6 +113,7 @@ extern void elog_add_event_byte(u8 event_type, u8 data);
extern void elog_add_event_word(u8 event_type, u16 data);
extern void elog_add_event_dword(u8 event_type, u32 data);
extern void elog_add_event_wake(u8 source, u32 instance);
+extern int elog_smbios_write_type15(unsigned long *current, int handle);
#endif /* !CONFIG_ELOG */
diff --git a/src/include/smbios.h b/src/include/smbios.h
index 7912ba151f..c65851550a 100644
--- a/src/include/smbios.h
+++ b/src/include/smbios.h
@@ -28,6 +28,7 @@ typedef enum {
SMBIOS_PROCESSOR_INFORMATION=4,
SMBIOS_CACHE_INFORMATION=7,
SMBIOS_SYSTEM_SLOTS=9,
+ SMBIOS_EVENT_LOG=15,
SMBIOS_PHYS_MEMORY_ARRAY=16,
SMBIOS_MEMORY_DEVICE=17,
SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS=19,
@@ -138,6 +139,36 @@ struct smbios_type4 {
char eos[2];
} __attribute__((packed));
+struct smbios_type15 {
+ u8 type;
+ u8 length;
+ u16 handle;
+ u16 area_length;
+ u16 header_offset;
+ u16 data_offset;
+ u8 access_method;
+ u8 log_status;
+ u32 change_token;
+ u32 address;
+ u8 header_format;
+ u8 log_type_descriptors;
+ u8 log_type_descriptor_length;
+ char eos[2];
+} __attribute__((packed));
+
+enum {
+ SMBIOS_EVENTLOG_ACCESS_METHOD_IO8 = 0,
+ SMBIOS_EVENTLOG_ACCESS_METHOD_IO8X2,
+ SMBIOS_EVENTLOG_ACCESS_METHOD_IO16,
+ SMBIOS_EVENTLOG_ACCESS_METHOD_MMIO32,
+ SMBIOS_EVENTLOG_ACCESS_METHOD_GPNV,
+};
+
+enum {
+ SMBIOS_EVENTLOG_STATUS_VALID = 1, /* Bit 0 */
+ SMBIOS_EVENTLOG_STATUS_FULL = 2, /* Bit 1 */
+};
+
struct smbios_type16 {
u8 type;
u8 length;