From b251b21b2bb39e819321d89f48d14cb0559a0036 Mon Sep 17 00:00:00 2001 From: Eduardo Habkost Date: Thu, 10 Dec 2020 15:06:27 -0500 Subject: [PATCH] smbios: smbios_get_tables() function The new function will be useful for code that just needs the address and length of SMBIOS tables. Signed-off-by: Eduardo Habkost --- src/fw/biostables.c | 9 +++++++++ src/util.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/fw/biostables.c b/src/fw/biostables.c index 3c30331..1adc694 100644 --- a/src/fw/biostables.c +++ b/src/fw/biostables.c @@ -315,6 +315,15 @@ copy_smbios_21(void *pos) SMBios21Addr = copy_fseg_table("SMBIOS", pos, p->length); } +void *smbios_get_tables(u32 *length) +{ + if (SMBios21Addr) { + *length = SMBios21Addr->structure_table_length; + return (void *)SMBios21Addr->structure_table_address; + } + return NULL; +} + void display_uuid(void) { diff --git a/src/util.h b/src/util.h index f761271..2e15175 100644 --- a/src/util.h +++ b/src/util.h @@ -88,6 +88,7 @@ u32 find_resume_vector(void); void acpi_reboot(void); void find_acpi_features(void); extern struct smbios_21_entry_point *SMBios21Addr; +void *smbios_get_tables(u32 *length); void copy_smbios_21(void *pos); void display_uuid(void); void copy_table(void *pos); -- 2.39.5