[SeaBIOS] [PATCH 2/2] smbios: allow vendor/manufacturer/version/product names be set on config.h

Eduardo Habkost ehabkost at redhat.com
Fri Jun 18 22:19:49 CEST 2010


Instead of using the same string for every field, let those fields to be set
individually on config.h

The current default value is kept (CONFIG_APPNAME), but it should allow
fine-tuned configuration at build-time on config.h.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 src/config.h |    8 ++++++++
 src/smbios.c |   16 ++++++++--------
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/config.h b/src/config.h
index 92a02aa..1302140 100644
--- a/src/config.h
+++ b/src/config.h
@@ -17,6 +17,14 @@
 #define CONFIG_OEM_TABLE_ID_4     CONFIG_APPNAME4
 #define CONFIG_ASL_COMPILER_ID_4  CONFIG_APPNAME4
 
+/* SMBIOS fields */
+#define CONFIG_SMBIOS_VENDOR        CONFIG_APPNAME
+#define CONFIG_SMBIOS_VERSION       CONFIG_APPNAME
+#define CONFIG_SMBIOS_MANUFACTURER  CONFIG_APPNAME
+#define CONFIG_SMBIOS_PROD_NAME     CONFIG_APPNAME
+#define CONFIG_SMBIOS_TYPE3_NAME    CONFIG_APPNAME
+#define CONFIG_SMBIOS_CPU_NAME      CONFIG_APPNAME
+
 // Configure as a coreboot payload.
 #define CONFIG_COREBOOT 0
 
diff --git a/src/smbios.c b/src/smbios.c
index e19a62d..eec271d 100644
--- a/src/smbios.c
+++ b/src/smbios.c
@@ -88,8 +88,8 @@ smbios_init_type_0(void *start)
     p->header.length = sizeof(struct smbios_type_0);
     p->header.handle = 0;
 
-    load_str_field_with_default(0, vendor_str, CONFIG_APPNAME);
-    load_str_field_with_default(0, bios_version_str, CONFIG_APPNAME);
+    load_str_field_with_default(0, vendor_str, CONFIG_SMBIOS_VENDOR);
+    load_str_field_with_default(0, bios_version_str, CONFIG_SMBIOS_VERSION);
 
     p->bios_starting_address_segment = 0xe800;
 
@@ -135,8 +135,8 @@ smbios_init_type_1(void *start)
     p->header.length = sizeof(struct smbios_type_1);
     p->header.handle = 0x100;
 
-    load_str_field_with_default(1, manufacturer_str, CONFIG_APPNAME);
-    load_str_field_with_default(1, product_name_str, CONFIG_APPNAME);
+    load_str_field_with_default(1, manufacturer_str, CONFIG_SMBIOS_MANUFACTURER);
+    load_str_field_with_default(1, product_name_str, CONFIG_SMBIOS_PROD_NAME);
     load_str_field_or_skip(1, version_str);
     load_str_field_or_skip(1, serial_number_str);
 
@@ -185,9 +185,9 @@ smbios_init_type_3(void *start)
     p->contained_element_count = 0;
 
     start += sizeof(struct smbios_type_3);
-    memcpy((char *)start, CONFIG_APPNAME"\0\0", sizeof(CONFIG_APPNAME) + 1);
+    memcpy((char *)start, CONFIG_SMBIOS_TYPE3_NAME"\0\0", sizeof(CONFIG_SMBIOS_TYPE3_NAME) + 1);
 
-    return start + sizeof(CONFIG_APPNAME) + 1;
+    return start + sizeof(CONFIG_SMBIOS_TYPE3_NAME) + 1;
 }
 
 /* Type 4 -- Processor Information */
@@ -228,9 +228,9 @@ smbios_init_type_4(void *start, unsigned int cpu_number)
 
     snprintf((char*)start, 6, "CPU%2x", cpu_number);
     start += 6;
-    memcpy((char *)start, CONFIG_APPNAME"\0\0", sizeof(CONFIG_APPNAME) + 1);
+    memcpy((char *)start, CONFIG_SMBIOS_CPU_NAME"\0\0", sizeof(CONFIG_SMBIOS_CPU_NAME) + 1);
 
-    return start + sizeof(CONFIG_APPNAME) + 1;
+    return start + sizeof(CONFIG_SMBIOS_CPU_NAME) + 1;
 }
 
 /* Type 16 -- Physical Memory Array */
-- 
1.7.0.3




More information about the SeaBIOS mailing list