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 
12 #include <ipxe/efi/efi.h>
13 
14 /** An installable EFI configuration table type */
15 struct efi_table {
16  /** Table GUID */
18  /**
19  * Determine length of table
20  *
21  * @v data Configuration table data (presumed valid)
22  * @ret len Length of table
23  *
24  * EFI does not record the length of installed configuration
25  * tables. Consumers must understand the specific type of
26  * table in order to be able to determine its length from the
27  * contents.
28  */
29  size_t ( * len ) ( const void *data );
30 };
31 
32 extern void * efi_find_table ( EFI_GUID *guid );
33 extern int efi_install_table ( struct efi_table *table, const void *data,
34  void **backup );
35 extern int efi_uninstall_table ( struct efi_table *table, void **backup );
36 
37 #endif /* _IPXE_EFI_TABLE_H */
128 bit buffer containing a unique identifier value.
Definition: Base.h:215
__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:70
void * efi_find_table(EFI_GUID *guid)
Look up EFI configuration table.
Definition: efi_table.c:44
An installable EFI configuration table type.
Definition: efi_table.h:15
size_t(* len)(const void *data)
Determine length of table.
Definition: efi_table.h:29
int efi_uninstall_table(struct efi_table *table, void **backup)
Uninstall EFI configuration table.
Definition: efi_table.c:161
EFI API.
uint64_t guid
GUID.
Definition: edd.h:30
uint8_t data[48]
Additional event data.
Definition: ena.h:22
EFI_GUID * guid
Table GUID.
Definition: efi_table.h:17
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)