aboutsummaryrefslogtreecommitdiff
path: root/include/efi_api.h
diff options
context:
space:
mode:
authorTom Rini2018-02-10 17:04:13 -0500
committerTom Rini2018-02-10 17:04:13 -0500
commitf59ab6c659fc8c3abc3fdd85ce9279f7930256a7 (patch)
treeb618c5d4b0573783591e61f2e16234c6846f016d /include/efi_api.h
parent1811a928c6c7604d6d05a84b4d552a7c31b4994e (diff)
parentdf9cf561b04dd3fc5a94f7a2c2500948ae8ba56b (diff)
Merge tag 'signed-efi-v2018.03' of git://github.com/agraf/u-boot
Patch queue for efi in 2018.03 - 2018-02-10 This time we have a few important bug fixes. Most noticable are: - Fix OpenBSD loader with CONFIG_BLK=n - Fix builds on various circumstances - Add missing stubs so callers don't call NULL - Bump UEFI revision to 2.7
Diffstat (limited to 'include/efi_api.h')
-rw-r--r--include/efi_api.h37
1 files changed, 33 insertions, 4 deletions
diff --git a/include/efi_api.h b/include/efi_api.h
index 205f8f1f700..3ba650e57e6 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -166,7 +166,14 @@ struct efi_boot_services {
void (EFIAPI *copy_mem)(void *destination, const void *source,
size_t length);
void (EFIAPI *set_mem)(void *buffer, size_t size, uint8_t value);
- void *create_event_ex;
+ efi_status_t (EFIAPI *create_event_ex)(
+ uint32_t type, efi_uintn_t notify_tpl,
+ void (EFIAPI *notify_function) (
+ struct efi_event *event,
+ void *context),
+ void *notify_context,
+ efi_guid_t *event_group,
+ struct efi_event **event);
};
/* Types and defines for EFI ResetSystem */
@@ -180,6 +187,17 @@ enum efi_reset_type {
#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552ULL
#define EFI_RUNTIME_SERVICES_REVISION 0x00010000
+#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
+#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
+#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
+
+struct efi_capsule_header {
+ efi_guid_t *capsule_guid;
+ u32 header_size;
+ u32 flags;
+ u32 capsule_image_size;
+};
+
struct efi_runtime_services {
struct efi_table_hdr hdr;
efi_status_t (EFIAPI *get_time)(struct efi_time *time,
@@ -209,9 +227,20 @@ struct efi_runtime_services {
void (EFIAPI *reset_system)(enum efi_reset_type reset_type,
efi_status_t reset_status,
unsigned long data_size, void *reset_data);
- void *update_capsule;
- void *query_capsule_caps;
- void *query_variable_info;
+ efi_status_t (EFIAPI *update_capsule)(
+ struct efi_capsule_header **capsule_header_array,
+ efi_uintn_t capsule_count,
+ u64 scatter_gather_list);
+ efi_status_t (EFIAPI *query_capsule_caps)(
+ struct efi_capsule_header **capsule_header_array,
+ efi_uintn_t capsule_count,
+ u64 maximum_capsule_size,
+ u32 reset_type);
+ efi_status_t (EFIAPI *query_variable_info)(
+ u32 attributes,
+ u64 maximum_variable_storage_size,
+ u64 remaining_variable_storage_size,
+ u64 maximum_variable_size);
};
/* EFI Configuration Table and GUID definitions */