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 <ehabkost@redhat.com>
This commit is contained in:
parent
4e99229e32
commit
1daafc8ba8
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue