summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/efi/efi_table.h
diff options
context:
space:
mode:
authorSimon Rettberg2026-01-28 12:53:53 +0100
committerSimon Rettberg2026-01-28 12:53:53 +0100
commit8e82785c584dc13e20f9229decb95bd17bbe9cd1 (patch)
treea8b359e59196be5b2e3862bed189107f4bc9975f /src/include/ipxe/efi/efi_table.h
parentMerge branch 'master' into openslx (diff)
parent[prefix] Make unlzma.S compatible with 386 class CPUs (diff)
downloadipxe-openslx.tar.gz
ipxe-openslx.tar.xz
ipxe-openslx.zip
Merge branch 'master' into openslxopenslx
Diffstat (limited to 'src/include/ipxe/efi/efi_table.h')
-rw-r--r--src/include/ipxe/efi/efi_table.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/include/ipxe/efi/efi_table.h b/src/include/ipxe/efi/efi_table.h
new file mode 100644
index 000000000..714069e15
--- /dev/null
+++ b/src/include/ipxe/efi/efi_table.h
@@ -0,0 +1,38 @@
+#ifndef _IPXE_EFI_TABLE_H
+#define _IPXE_EFI_TABLE_H
+
+/** @file
+ *
+ * EFI configuration tables
+ *
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+FILE_SECBOOT ( PERMITTED );
+
+#include <ipxe/efi/efi.h>
+
+/** An installable EFI configuration table type */
+struct efi_table {
+ /** Table GUID */
+ EFI_GUID *guid;
+ /**
+ * Determine length of table
+ *
+ * @v data Configuration table data (presumed valid)
+ * @ret len Length of table
+ *
+ * EFI does not record the length of installed configuration
+ * tables. Consumers must understand the specific type of
+ * table in order to be able to determine its length from the
+ * contents.
+ */
+ size_t ( * len ) ( const void *data );
+};
+
+extern void * efi_find_table ( EFI_GUID *guid );
+extern int efi_install_table ( struct efi_table *table, const void *data,
+ void **backup );
+extern int efi_uninstall_table ( struct efi_table *table, void **backup );
+
+#endif /* _IPXE_EFI_TABLE_H */