diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2019-06-05 21:00:39 +0200 |
---|---|---|
committer | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2019-06-10 23:06:19 +0200 |
commit | 7a69e97ba42a93e33dccfe715a8522754117a715 (patch) | |
tree | 24673b58a8c5ace6495f9d41fdf231c036bcf499 /include/efi_loader.h | |
parent | 1e37be5e20f42bbffcb633a268d46c038846a603 (diff) | |
download | u-boot-7a69e97ba42a93e33dccfe715a8522754117a715.tar.gz u-boot-7a69e97ba42a93e33dccfe715a8522754117a715.tar.bz2 u-boot-7a69e97ba42a93e33dccfe715a8522754117a715.zip |
efi_loader: implement event queue
Up to now we have only been using a flag queued for events. But this does
not satisfy the requirements of the UEFI spec. Events must be notified in
the sequence of decreasing TPL level and within a TPL level in the sequence
of signaling.
Implement a queue for signaled events.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Diffstat (limited to 'include/efi_loader.h')
-rw-r--r-- | include/efi_loader.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/efi_loader.h b/include/efi_loader.h index 8a3f8fe03d..f0e1313f93 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -256,6 +256,7 @@ struct efi_loaded_image_obj { * struct efi_event * * @link: Link to list of all events + * @queue_link: Link to the list of queued events * @type: Type of event, see efi_create_event * @notify_tpl: Task priority level of notifications * @nofify_function: Function to call when the event is triggered @@ -264,11 +265,11 @@ struct efi_loaded_image_obj { * @trigger_time: Period of the timer * @trigger_next: Next time to trigger the timer * @trigger_type: Type of timer, see efi_set_timer - * @is_queued: The notification function is queued * @is_signaled: The event occurred. The event is in the signaled state. */ struct efi_event { struct list_head link; + struct list_head queue_link; uint32_t type; efi_uintn_t notify_tpl; void (EFIAPI *notify_function)(struct efi_event *event, void *context); @@ -277,7 +278,6 @@ struct efi_event { u64 trigger_next; u64 trigger_time; enum efi_timer_delay trigger_type; - bool is_queued; bool is_signaled; }; |