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
10FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11FILE_SECBOOT ( PERMITTED );
12
13#include <ipxe/efi/efi.h>
14
15/** An installable EFI configuration table type */
16struct 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
33extern void * efi_find_table ( EFI_GUID *guid );
34extern int efi_install_table ( struct efi_table *table, const void *data,
35 void **backup );
36extern int efi_uninstall_table ( struct efi_table *table, void **backup );
37
38#endif /* _IPXE_EFI_TABLE_H */
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
__SIZE_TYPE__ size_t
Definition stdint.h:6
uint64_t guid
GUID.
Definition edd.h:1
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
int efi_uninstall_table(struct efi_table *table, void **backup)
Uninstall EFI configuration table.
Definition efi_table.c:162
uint8_t data[48]
Additional event data.
Definition ena.h:11
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
EFI API.
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
EFI_GUID * guid
Table GUID.
Definition efi_table.h:18