diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/elog.h | 1 | ||||
-rw-r--r-- | src/include/smbios.h | 31 |
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; |