Lines Matching refs:event
209 static bool efi_event_is_queued(struct efi_event *event) in efi_event_is_queued() argument
211 return !!event->queue_link.next; in efi_event_is_queued()
250 struct efi_event *event; in efi_process_event_queue() local
253 event = list_first_entry(&efi_event_queue, struct efi_event, in efi_process_event_queue()
255 if (efi_tpl >= event->notify_tpl) in efi_process_event_queue()
257 list_del(&event->queue_link); in efi_process_event_queue()
258 event->queue_link.next = NULL; in efi_process_event_queue()
259 event->queue_link.prev = NULL; in efi_process_event_queue()
262 efi_tpl = event->notify_tpl; in efi_process_event_queue()
263 EFI_CALL_VOID(event->notify_function(event, in efi_process_event_queue()
264 event->notify_context)); in efi_process_event_queue()
266 if (event->type == EVT_NOTIFY_SIGNAL) in efi_process_event_queue()
267 event->is_signaled = 0; in efi_process_event_queue()
279 static void efi_queue_event(struct efi_event *event) in efi_queue_event() argument
283 if (!event->notify_function) in efi_queue_event()
286 if (!efi_event_is_queued(event)) { in efi_queue_event()
292 if (item->notify_tpl < event->notify_tpl) { in efi_queue_event()
293 list_add_tail(&event->queue_link, in efi_queue_event()
295 event = NULL; in efi_queue_event()
299 if (event) in efi_queue_event()
300 list_add_tail(&event->queue_link, &efi_event_queue); in efi_queue_event()
333 void efi_signal_event(struct efi_event *event) in efi_signal_event() argument
335 if (event->is_signaled) in efi_signal_event()
337 if (event->group) { in efi_signal_event()
345 if (!evt->group || guidcmp(evt->group, event->group)) in efi_signal_event()
352 if (!evt->group || guidcmp(evt->group, event->group)) in efi_signal_event()
357 event->is_signaled = true; in efi_signal_event()
358 efi_queue_event(event); in efi_signal_event()
685 static efi_status_t efi_is_event(const struct efi_event *event) in efi_is_event() argument
689 if (!event) in efi_is_event()
692 if (evt == event) in efi_is_event()
717 struct efi_event *event, in efi_create_event()
720 struct efi_event **event) in efi_create_event() argument
726 if (event == NULL) in efi_create_event()
770 *event = evt; in efi_create_event()
794 struct efi_event *event, in efi_create_event_ex()
798 struct efi_event **event) in efi_create_event_ex() argument
817 notify_context, event_group, event); in efi_create_event_ex()
840 struct efi_event *event, in efi_create_event_ext()
842 void *notify_context, struct efi_event **event) in efi_create_event_ext() argument
847 notify_context, NULL, event)); in efi_create_event_ext()
897 efi_status_t efi_set_timer(struct efi_event *event, enum efi_timer_delay type, in efi_set_timer() argument
901 if (efi_is_event(event) != EFI_SUCCESS || !(event->type & EVT_TIMER)) in efi_set_timer()
912 event->trigger_next = -1ULL; in efi_set_timer()
916 event->trigger_next = timer_get_us() + trigger_time; in efi_set_timer()
921 event->trigger_type = type; in efi_set_timer()
922 event->trigger_time = trigger_time; in efi_set_timer()
923 event->is_signaled = false; in efi_set_timer()
942 static efi_status_t EFIAPI efi_set_timer_ext(struct efi_event *event, in efi_set_timer_ext() argument
946 EFI_ENTRY("%p, %d, %llx", event, type, trigger_time); in efi_set_timer_ext()
947 return EFI_EXIT(efi_set_timer(event, type, trigger_time)); in efi_set_timer_ext()
964 struct efi_event **event, in efi_wait_for_event() argument
969 EFI_ENTRY("%zu, %p, %p", num_events, event, index); in efi_wait_for_event()
972 if (!num_events || !event) in efi_wait_for_event()
978 if (efi_is_event(event[i]) != EFI_SUCCESS) in efi_wait_for_event()
980 if (!event[i]->type || event[i]->type & EVT_NOTIFY_SIGNAL) in efi_wait_for_event()
982 if (!event[i]->is_signaled) in efi_wait_for_event()
983 efi_queue_event(event[i]); in efi_wait_for_event()
989 if (event[i]->is_signaled) in efi_wait_for_event()
1001 event[i]->is_signaled = false; in efi_wait_for_event()
1022 static efi_status_t EFIAPI efi_signal_event_ext(struct efi_event *event) in efi_signal_event_ext() argument
1024 EFI_ENTRY("%p", event); in efi_signal_event_ext()
1025 if (efi_is_event(event) != EFI_SUCCESS) in efi_signal_event_ext()
1027 efi_signal_event(event); in efi_signal_event_ext()
1042 efi_status_t EFIAPI efi_close_event(struct efi_event *event) in efi_close_event() argument
1046 EFI_ENTRY("%p", event); in efi_close_event()
1047 if (efi_is_event(event) != EFI_SUCCESS) in efi_close_event()
1053 if (event == item->event) { in efi_close_event()
1067 if (efi_event_is_queued(event)) in efi_close_event()
1068 list_del(&event->queue_link); in efi_close_event()
1070 list_del(&event->link); in efi_close_event()
1071 efi_free_pool(event); in efi_close_event()
1089 static efi_status_t EFIAPI efi_check_event(struct efi_event *event) in efi_check_event() argument
1091 EFI_ENTRY("%p", event); in efi_check_event()
1093 if (efi_is_event(event) != EFI_SUCCESS || in efi_check_event()
1094 event->type & EVT_NOTIFY_SIGNAL) in efi_check_event()
1096 if (!event->is_signaled) in efi_check_event()
1097 efi_queue_event(event); in efi_check_event()
1098 if (event->is_signaled) { in efi_check_event()
1099 event->is_signaled = false; in efi_check_event()
1175 struct efi_register_notify_event *event; in efi_add_protocol() local
1192 list_for_each_entry(event, &efi_register_notify_events, link) { in efi_add_protocol()
1193 if (!guidcmp(protocol, &event->protocol)) { in efi_add_protocol()
1203 list_add_tail(¬if->link, &event->handles); in efi_add_protocol()
1204 event->event->is_signaled = false; in efi_add_protocol()
1205 efi_signal_event(event->event); in efi_add_protocol()
1481 struct efi_event *event, in efi_register_protocol_notify() argument
1487 EFI_ENTRY("%pUs, %p, %p", protocol, event, registration); in efi_register_protocol_notify()
1489 if (!protocol || !event || !registration) { in efi_register_protocol_notify()
1500 item->event = event; in efi_register_protocol_notify()
1551 struct efi_register_notify_event *event; in efi_check_register_notify_event() local
1553 list_for_each_entry(event, &efi_register_notify_events, link) { in efi_check_register_notify_event()
1554 if (event == (struct efi_register_notify_event *)key) in efi_check_register_notify_event()
1555 return event; in efi_check_register_notify_event()
1581 struct efi_register_notify_event *event; in efi_locate_handle() local
1592 event = efi_check_register_notify_event(search_key); in efi_locate_handle()
1593 if (!event) in efi_locate_handle()
1606 if (list_empty(&event->handles)) in efi_locate_handle()
1608 handle = list_first_entry(&event->handles, in efi_locate_handle()
2639 struct efi_register_notify_event *event; in efi_locate_protocol() local
2642 event = efi_check_register_notify_event(registration); in efi_locate_protocol()
2643 if (!event) in efi_locate_protocol()
2651 if (guidcmp(&event->protocol, protocol)) in efi_locate_protocol()
2653 if (list_empty(&event->handles)) in efi_locate_protocol()
2655 handle = list_first_entry(&event->handles, in efi_locate_protocol()