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;
|
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
|
static int
|
||||||
smbios_romfile_setup(void)
|
smbios_romfile_setup(void)
|
||||||
{
|
{
|
||||||
|
@ -535,19 +554,7 @@ smbios_romfile_setup(void)
|
||||||
|
|
||||||
f_anchor->copy(f_anchor, &ep, f_anchor->size);
|
f_anchor->copy(f_anchor, &ep, f_anchor->size);
|
||||||
|
|
||||||
if (!smbios_build_tables(f_tables,
|
return smbios_21_setup_entry_point(f_tables, &ep);
|
||||||
&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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue