mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
efi_loader: implement queueing of the notification function
For the correct implementation of the task priority level (TPL) calling the notification function must be queued. Add a status field 'queued' to events. In function efi_signal_event set status queued if a notification function exists and reset it after we have called the function. A later patch will add a check of the TPL here. In efi_create_event and efi_close_event unset the queued status. In function efi_wait_for_event and efi_check_event queue the notification function. In efi_timer_check call the efi_notify_event if the status queued is set. For all timer events set status signaled. In efi_console_timer_notify set the signaled state of the WaitForKey event. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
38b1b79021
commit
ca62a4f53e
3 changed files with 36 additions and 12 deletions
|
@ -426,8 +426,10 @@ static void EFIAPI efi_console_timer_notify(struct efi_event *event,
|
|||
void *context)
|
||||
{
|
||||
EFI_ENTRY("%p, %p", event, context);
|
||||
if (tstc())
|
||||
if (tstc()) {
|
||||
efi_con_in.wait_for_key->signaled = 1;
|
||||
efi_signal_event(efi_con_in.wait_for_key);
|
||||
}
|
||||
EFI_EXIT(EFI_SUCCESS);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue