]> xenbits.xensource.com Git - seabios.git/commitdiff
smbios: smbios_get_tables() function
authorEduardo Habkost <ehabkost@redhat.com>
Thu, 10 Dec 2020 20:06:27 +0000 (15:06 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Sat, 18 Dec 2021 16:39:12 +0000 (11:39 -0500)
The new function will be useful for code that just needs the
address and length of SMBIOS tables.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
src/fw/biostables.c
src/util.h

index 3c30331e5cd7e8f1af38f3204dcf173281776476..1adc694c96e92dd7a6b8a24f897781a32bb82c48 100644 (file)
@@ -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)
 {
index f761271cf2ffe647f6b7697a90f332ba73073dbf..2e151752e77fbecf819b7c73a516864c41dd0bca 100644 (file)
@@ -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);