diff options
author | Konstantin Aladyshev <aladyshev22@gmail.com> | 2017-08-01 15:52:46 +0300 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2017-08-10 15:56:45 +0000 |
commit | d0df1d7c4ebd4d8e654c8350c27a0d9f749a88f6 (patch) | |
tree | 1ebb35d72d65917e20cec93746cae9c5d753cbc7 /src/include | |
parent | 0722613563247d41caa406c176ee452465df3572 (diff) |
SMBIOS: Correct length calculation for empty string table
If all strings in SMBIOS table are empty, smbios_string_table_len
function should return 2, cause every table must end with "\0\0".
Also replace "eos" field type in smbios structures
from char to u8.
Change-Id: Ia3178b0030aa71e1ff11a3fd3d102942f0027eb1
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
Reviewed-on: https://review.coreboot.org/20840
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/smbios.h | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/include/smbios.h b/src/include/smbios.h index dec0300eef..fddcce8203 100644 --- a/src/include/smbios.h +++ b/src/include/smbios.h @@ -22,8 +22,8 @@ #include <compiler.h> unsigned long smbios_write_tables(unsigned long start); -int smbios_add_string(char *start, const char *str); -int smbios_string_table_len(char *start); +int smbios_add_string(u8 *start, const char *str); +int smbios_string_table_len(u8 *start); /* Used by mainboard to add an on-board device */ int smbios_write_type41(unsigned long *current, int *handle, @@ -249,7 +249,7 @@ struct smbios_type0 { u8 system_bios_minor_release; u8 ec_major_release; u8 ec_minor_release; - char eos[2]; + u8 eos[2]; } __packed; struct smbios_type1 { @@ -264,7 +264,7 @@ struct smbios_type1 { u8 wakeup_type; u8 sku; u8 family; - char eos[2]; + u8 eos[2]; } __packed; struct smbios_type2 { @@ -275,7 +275,7 @@ struct smbios_type2 { u8 product_name; u8 version; u8 serial_number; - char eos[2]; + u8 eos[2]; } __packed; enum { @@ -336,7 +336,7 @@ struct smbios_type3 { u8 element_count; u8 element_record_length; u8 sku_number; - char eos[2]; + u8 eos[2]; } __packed; struct smbios_type4 { @@ -366,7 +366,7 @@ struct smbios_type4 { u8 thread_count; u16 processor_characteristics; u16 processor_family2; - char eos[2]; + u8 eos[2]; } __packed; struct smbios_type11 { @@ -374,7 +374,7 @@ struct smbios_type11 { u8 length; u16 handle; u8 count; - char eos[2]; + u8 eos[2]; } __packed; struct smbios_type15 { @@ -391,7 +391,7 @@ struct smbios_type15 { u8 header_format; u8 log_type_descriptors; u8 log_type_descriptor_length; - char eos[2]; + u8 eos[2]; } __packed; enum { @@ -418,7 +418,7 @@ struct smbios_type16 { u16 memory_error_information_handle; u16 number_of_memory_devices; u64 extended_maximum_capacity; - char eos[2]; + u8 eos[2]; } __packed; struct smbios_type17 { @@ -447,7 +447,7 @@ struct smbios_type17 { u16 minimum_voltage; u16 maximum_voltage; u16 configured_voltage; - char eos[2]; + u8 eos[2]; } __packed; struct smbios_type32 { @@ -497,7 +497,7 @@ struct smbios_type41 { u8 bus_number; u8 function_number: 3; u8 device_number: 5; - char eos[2]; + u8 eos[2]; } __packed; struct smbios_type127 { |