Lines Matching refs:handler

603     driver_filter_t filter, driver_intr_t handler, void *arg, u_char pri,  in intr_event_add_handler()  argument
610 if (ie == NULL || name == NULL || (handler == NULL && filter == NULL)) in intr_event_add_handler()
622 ih->ih_handler = handler; in intr_event_add_handler()
650 while (ie->ie_thread == NULL && handler != NULL) { in intr_event_add_handler()
799 intr_handler_barrier(struct intr_handler *handler) in intr_handler_barrier() argument
803 ie = handler->ih_event; in intr_handler_barrier()
805 KASSERT((handler->ih_flags & IH_DEAD) == 0, in intr_handler_barrier()
812 if ((handler->ih_flags & IH_CHANGED) == 0) { in intr_handler_barrier()
813 handler->ih_flags |= IH_CHANGED; in intr_handler_barrier()
816 while ((handler->ih_flags & IH_CHANGED) != 0) in intr_handler_barrier()
817 msleep(handler, &ie->ie_lock, 0, "ih_barr", 0); in intr_handler_barrier()
862 struct intr_handler *handler = (struct intr_handler *)cookie; in intr_event_remove_handler() local
867 if (handler == NULL) in intr_event_remove_handler()
869 ie = handler->ih_event; in intr_event_remove_handler()
872 handler->ih_name)); in intr_event_remove_handler()
875 CTR3(KTR_INTR, "%s: removing %s from %s", __func__, handler->ih_name, in intr_event_remove_handler()
878 if (ih == handler) in intr_event_remove_handler()
883 "interrupt event \"%s\"", handler->ih_name, ie->ie_name); in intr_event_remove_handler()
902 KASSERT((handler->ih_flags & IH_DEAD) == 0, in intr_event_remove_handler()
904 handler->ih_flags |= IH_DEAD; in intr_event_remove_handler()
906 while (handler->ih_flags & IH_DEAD) in intr_event_remove_handler()
907 msleep(handler, &ie->ie_lock, 0, "iev_rmh", 0); in intr_event_remove_handler()
911 free(handler, M_ITHREAD); in intr_event_remove_handler()
918 struct intr_handler *handler = (struct intr_handler *)cookie; in intr_event_suspend_handler() local
921 if (handler == NULL) in intr_event_suspend_handler()
923 ie = handler->ih_event; in intr_event_suspend_handler()
926 handler->ih_name)); in intr_event_suspend_handler()
928 handler->ih_flags |= IH_SUSP; in intr_event_suspend_handler()
929 intr_handler_barrier(handler); in intr_event_suspend_handler()
937 struct intr_handler *handler = (struct intr_handler *)cookie; in intr_event_resume_handler() local
940 if (handler == NULL) in intr_event_resume_handler()
942 ie = handler->ih_event; in intr_event_resume_handler()
945 handler->ih_name)); in intr_event_resume_handler()
952 handler->ih_flags &= ~IH_SUSP; in intr_event_resume_handler()
953 intr_handler_barrier(handler); in intr_event_resume_handler()
1042 swi_add(struct intr_event **eventp, const char *name, driver_intr_t handler, in swi_add() argument
1064 if (handler != NULL) { in swi_add()
1065 error = intr_event_add_handler(ie, name, NULL, handler, arg, in swi_add()