From: Eduardo Habkost Date: Thu, 10 Dec 2020 18:52:14 +0000 (-0500) Subject: smbios: smbios_21_setup_entry_point() function X-Git-Tag: rel-1.16.0~26 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1daafc8ba89c2494c330804d7c1d8a4dfc158b35;p=seabios.git smbios: smbios_21_setup_entry_point() function 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 --- diff --git a/src/fw/biostables.c b/src/fw/biostables.c index f0aa7ed..559a586 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