From c392b6477f656331c7e19b22f6eb240cdd5465a1 Mon Sep 17 00:00:00 2001 From: Peter Stuge Date: Sat, 6 Jul 2013 19:51:12 +0200 Subject: SMBIOS: Add smbios_write_type11() for creating an OEM Strings structure Change-Id: Id338968429435bac26595c4843b07cdbb91dd64d Signed-off-by: Peter Stuge Reviewed-on: http://review.coreboot.org/3618 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/arch/x86/boot/smbios.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/arch/x86') diff --git a/src/arch/x86/boot/smbios.c b/src/arch/x86/boot/smbios.c index 073c7c5e08..901a209eda 100644 --- a/src/arch/x86/boot/smbios.c +++ b/src/arch/x86/boot/smbios.c @@ -256,6 +256,24 @@ static int smbios_write_type4(unsigned long *current, int handle) return len; } +int smbios_write_type11(unsigned long *current, int handle, const char **oem_strings, int count) +{ + struct smbios_type11 *t = (struct smbios_type11 *)*current; + int i, len; + + memset(t, 0, sizeof *t); + t->type = SMBIOS_OEM_STRINGS; + t->handle = handle; + t->length = len = sizeof *t - 2; + + for (i = 0; i < count; i++) + t->count = smbios_add_string(t->eos, oem_strings[i]); + + len += smbios_string_table_len(t->eos); + *current += len; + return len; +} + static int smbios_write_type32(unsigned long *current, int handle) { struct smbios_type32 *t = (struct smbios_type32 *)*current; -- cgit v1.2.3