SMBIOS: Add smbios_write_type11() for creating an OEM Strings structure
Change-Id: Id338968429435bac26595c4843b07cdbb91dd64d Signed-off-by: Peter Stuge <peter@stuge.se> Reviewed-on: http://review.coreboot.org/3618 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
parent
4e7385b58f
commit
c392b6477f
|
@ -256,6 +256,24 @@ static int smbios_write_type4(unsigned long *current, int handle)
|
||||||
return len;
|
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)
|
static int smbios_write_type32(unsigned long *current, int handle)
|
||||||
{
|
{
|
||||||
struct smbios_type32 *t = (struct smbios_type32 *)*current;
|
struct smbios_type32 *t = (struct smbios_type32 *)*current;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
|
int smbios_write_type11(unsigned long *current, int handle, const char **oem_strings, int count);
|
||||||
unsigned long smbios_write_tables(unsigned long start);
|
unsigned long smbios_write_tables(unsigned long start);
|
||||||
int smbios_add_string(char *start, const char *str);
|
int smbios_add_string(char *start, const char *str);
|
||||||
int smbios_string_table_len(char *start);
|
int smbios_string_table_len(char *start);
|
||||||
|
@ -31,6 +32,7 @@ typedef enum {
|
||||||
SMBIOS_PROCESSOR_INFORMATION=4,
|
SMBIOS_PROCESSOR_INFORMATION=4,
|
||||||
SMBIOS_CACHE_INFORMATION=7,
|
SMBIOS_CACHE_INFORMATION=7,
|
||||||
SMBIOS_SYSTEM_SLOTS=9,
|
SMBIOS_SYSTEM_SLOTS=9,
|
||||||
|
SMBIOS_OEM_STRINGS=11,
|
||||||
SMBIOS_EVENT_LOG=15,
|
SMBIOS_EVENT_LOG=15,
|
||||||
SMBIOS_PHYS_MEMORY_ARRAY=16,
|
SMBIOS_PHYS_MEMORY_ARRAY=16,
|
||||||
SMBIOS_MEMORY_DEVICE=17,
|
SMBIOS_MEMORY_DEVICE=17,
|
||||||
|
@ -142,6 +144,14 @@ struct smbios_type4 {
|
||||||
char eos[2];
|
char eos[2];
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct smbios_type11 {
|
||||||
|
u8 type;
|
||||||
|
u8 length;
|
||||||
|
u16 handle;
|
||||||
|
u8 count;
|
||||||
|
char eos[2];
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
struct smbios_type15 {
|
struct smbios_type15 {
|
||||||
u8 type;
|
u8 type;
|
||||||
u8 length;
|
u8 length;
|
||||||
|
|
Loading…
Reference in New Issue