iPXE
efi_table.h
Go to the documentation of this file.
1 #ifndef _IPXE_EFI_TABLE_H
2 #define _IPXE_EFI_TABLE_H
3 
4 /** @file
5  *
6  * EFI configuration tables
7  *
8  */
9 
10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11 FILE_SECBOOT ( PERMITTED );
12 
13 #include <ipxe/efi/efi.h>
14 
15 /** An installable EFI configuration table type */
16 struct efi_table {
17  /** Table GUID */
19  /**
20  * Determine length of table
21  *
22  * @v data Configuration table data (presumed valid)
23  * @ret len Length of table
24  *
25  * EFI does not record the length of installed configuration
26  * tables. Consumers must understand the specific type of
27  * table in order to be able to determine its length from the
28  * contents.
29  */
30  size_t ( * len ) ( const void *data );
31 };
32 
33 extern void * efi_find_table ( EFI_GUID *guid );
34 extern int efi_install_table ( struct efi_table *table, const void *data,
35  void **backup );
36 extern int efi_uninstall_table ( struct efi_table *table, void **backup );
37 
38 #endif /* _IPXE_EFI_TABLE_H */
128 bit buffer containing a unique identifier value.
Definition: Base.h:216
__SIZE_TYPE__ size_t
Definition: stdint.h:6
int efi_install_table(struct efi_table *table, const void *data, void **backup)
Install EFI configuration table.
Definition: efi_table.c:71
void * efi_find_table(EFI_GUID *guid)
Look up EFI configuration table.
Definition: efi_table.c:45
An installable EFI configuration table type.
Definition: efi_table.h:16
size_t(* len)(const void *data)
Determine length of table.
Definition: efi_table.h:30
int efi_uninstall_table(struct efi_table *table, void **backup)
Uninstall EFI configuration table.
Definition: efi_table.c:162
EFI API.
uint64_t guid
GUID.
Definition: edd.h:31
FILE_SECBOOT(PERMITTED)
uint8_t data[48]
Additional event data.
Definition: ena.h:22
EFI_GUID * guid
Table GUID.
Definition: efi_table.h:18
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)