grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC 1/3] efi: add configuration table search function


From: Leif Lindholm
Subject: [RFC 1/3] efi: add configuration table search function
Date: Tue, 1 Mar 2016 17:41:41 +0000

Several places in the code iterates through the configuration tables
presented by the system table.
Add new function grub_efi_find_config_table to use for this instead.
---
 grub-core/kern/efi/efi.c | 18 ++++++++++++++++++
 include/grub/efi/efi.h   |  3 +++
 2 files changed, 21 insertions(+)

diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c
index caf9bcc..41686ee 100644
--- a/grub-core/kern/efi/efi.c
+++ b/grub-core/kern/efi/efi.c
@@ -911,3 +911,21 @@ grub_efi_compare_device_paths (const 
grub_efi_device_path_t *dp1,
 
   return 0;
 }
+
+/* Return pointer to vendor table identified by guid. */
+void *
+grub_efi_find_config_table (const grub_efi_guid_t *guid)
+{
+  grub_efi_uintn_t i;
+
+  for (i = 0; i < grub_efi_system_table->num_table_entries; i++)
+    {
+      grub_efi_configuration_table_t *table =
+       &grub_efi_system_table->configuration_table[i];
+
+      if (! grub_memcmp (&table->vendor_guid, guid,
+                        sizeof (grub_efi_packed_guid_t)))
+       return (void *) table->vendor_table;
+    }
+  return NULL;
+}
diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h
index 0e6fd86..65c7f95 100644
--- a/include/grub/efi/efi.h
+++ b/include/grub/efi/efi.h
@@ -77,6 +77,9 @@ int
 EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1,
                                             const grub_efi_device_path_t *dp2);
 
+void *
+EXPORT_FUNC (grub_efi_find_config_table) (const grub_efi_guid_t *guid);
+
 extern void (*EXPORT_VAR(grub_efi_net_config)) (grub_efi_handle_t hnd, 
                                                char **device,
                                                char **path);
-- 
2.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]