summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEduardo Habkost <ehabkost@redhat.com>2020-12-10 15:06:27 -0500
committerKevin O'Connor <kevin@koconnor.net>2021-12-18 11:39:12 -0500
commitb251b21b2bb39e819321d89f48d14cb0559a0036 (patch)
tree05375b73354f2ab1fb12cbfa2ccec5d692097d8a /src
parentcfd1ef3ab92da94bebee84947abe2b8cad1ae1bc (diff)
downloadqemu-seabios-b251b21b2bb39e819321d89f48d14cb0559a0036.tar.gz
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 <ehabkost@redhat.com>
Diffstat (limited to 'src')
-rw-r--r--src/fw/biostables.c9
-rw-r--r--src/util.h1
2 files changed, 10 insertions, 0 deletions
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);