]> git.sur5r.net Git - u-boot/blobdiff - include/efi_loader.h
arm: mvebu: clearfog: update SPI flash DT description
[u-boot] / include / efi_loader.h
index 9cb06440a6759804de5e25d961fa5e44cf23249e..1b92edbd77c2a888560f26a87cbe250aa475ec4a 100644 (file)
@@ -82,6 +82,7 @@ extern const struct efi_device_path_to_text_protocol efi_device_path_to_text;
 
 uint16_t *efi_dp_str(struct efi_device_path *dp);
 
+extern const efi_guid_t efi_global_variable_guid;
 extern const efi_guid_t efi_guid_console_control;
 extern const efi_guid_t efi_guid_device_path;
 extern const efi_guid_t efi_guid_loaded_image;
@@ -111,8 +112,8 @@ struct efi_handler {
 struct efi_object {
        /* Every UEFI object is part of a global object list */
        struct list_head link;
-       /* We support up to 8 "protocols" an object can be accessed through */
-       struct efi_handler protocols[8];
+       /* We support up to 16 "protocols" an object can be accessed through */
+       struct efi_handler protocols[16];
        /* The object spawner can either use this for data or as identifier */
        void *handle;
 };
@@ -135,8 +136,8 @@ struct efi_object {
  * @nofify_function:   Function to call when the event is triggered
  * @notify_context:    Data to be passed to the notify function
  * @trigger_type:      Type of timer, see efi_set_timer
- * @queued:            The notification functionis queued
- * @signaled:          The event occured
+ * @queued:            The notification function is queued
+ * @signaled:          The event occurred. The event is in the signaled state.
  */
 struct efi_event {
        uint32_t type;
@@ -146,8 +147,8 @@ struct efi_event {
        u64 trigger_next;
        u64 trigger_time;
        enum efi_timer_delay trigger_type;
-       int queued;
-       int signaled;
+       bool is_queued;
+       bool is_signaled;
 };
 
 
@@ -232,6 +233,8 @@ efi_status_t efi_install_configuration_table(const efi_guid_t *guid, void *table
 void efi_setup_loaded_image(struct efi_loaded_image *info, struct efi_object *obj,
                            struct efi_device_path *device_path,
                            struct efi_device_path *file_path);
+efi_status_t efi_load_image_from_path(struct efi_device_path *file_path,
+                                     void **buffer);
 
 #ifdef CONFIG_EFI_LOADER_BOUNCE_BUFFER
 extern void *efi_bounce_buffer;
@@ -256,6 +259,9 @@ struct efi_device_path *efi_dp_from_part(struct blk_desc *desc, int part);
 struct efi_device_path *efi_dp_from_file(struct blk_desc *desc, int part,
                                         const char *path);
 struct efi_device_path *efi_dp_from_eth(void);
+struct efi_device_path *efi_dp_from_mem(uint32_t mem_type,
+                                       uint64_t start_address,
+                                       uint64_t end_address);
 void efi_dp_split_file_path(struct efi_device_path *full_path,
                            struct efi_device_path **device_path,
                            struct efi_device_path **file_path);
@@ -309,6 +315,19 @@ efi_status_t EFIAPI efi_selftest(efi_handle_t image_handle,
                                 struct efi_system_table *systab);
 #endif
 
+efi_status_t EFIAPI efi_get_variable(s16 *variable_name,
+               efi_guid_t *vendor, u32 *attributes,
+               unsigned long *data_size, void *data);
+efi_status_t EFIAPI efi_get_next_variable(
+               unsigned long *variable_name_size,
+               s16 *variable_name, efi_guid_t *vendor);
+efi_status_t EFIAPI efi_set_variable(s16 *variable_name,
+               efi_guid_t *vendor, u32 attributes,
+               unsigned long data_size, void *data);
+
+void *efi_bootmgr_load(struct efi_device_path **device_path,
+                      struct efi_device_path **file_path);
+
 #else /* defined(EFI_LOADER) && !defined(CONFIG_SPL_BUILD) */
 
 /* Without CONFIG_EFI_LOADER we don't have a runtime section, stub it out */