Extract the code specific for building the SMBIOS 2.1 entry point
from smbios_romfile_setup() to a new
smbios_21_setup_entry_point() function.

Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
---
 src/fw/biostables.c | 33 ++++++++++++++++++++-------------
 1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/src/fw/biostables.c b/src/fw/biostables.c
index f0aa7ed3..559a5867 100644
--- a/src/fw/biostables.c
+++ b/src/fw/biostables.c
@@ -523,6 +523,25 @@ smbios_build_tables(struct romfile_s *f_tables,
     return 1;
 }
 
+static int
+smbios_21_setup_entry_point(struct romfile_s *f_tables,
+                            struct smbios_21_entry_point *ep)
+{
+    if (!smbios_build_tables(f_tables,
+                             &ep->structure_table_address,
+                             &ep->structure_table_length,
+                             &ep->max_structure_size,
+                             &ep->number_of_structures))
+        return 0;
+
+    /* finalize entry point */
+    ep->checksum -= checksum(ep, 0x10);
+    ep->intermediate_checksum -= checksum((void *)ep + 0x10, ep->length - 
0x10);
+
+    copy_smbios_21(ep);
+    return 1;
+}
+
 static int
 smbios_romfile_setup(void)
 {
@@ -535,19 +554,7 @@ smbios_romfile_setup(void)
 
     f_anchor->copy(f_anchor, &ep, f_anchor->size);
 
-    if (!smbios_build_tables(f_tables,
-                             &ep.structure_table_address,
-                             &ep.structure_table_length,
-                             &ep.max_structure_size,
-                             &ep.number_of_structures))
-        return 0;
-
-    /* finalize entry point */
-    ep.checksum -= checksum(&ep, 0x10);
-    ep.intermediate_checksum -= checksum((void *)&ep + 0x10, ep.length - 0x10);
-
-    copy_smbios_21(&ep);
-    return 1;
+    return smbios_21_setup_entry_point(f_tables, &ep);
 }
 
 void
-- 
2.28.0
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to