Home | History | Annotate | Download | only in usb

Lines Matching defs:taskq

409 	struct usb_taskq *taskq;
419 taskq = &usb_taskq[i];
421 TAILQ_INIT(&taskq->tasks);
426 mutex_init(&taskq->lock, MUTEX_DEFAULT, IPL_USB);
427 cv_init(&taskq->cv, "usbtsk");
428 taskq->name = taskq_names[i];
429 taskq->current_task = NULL;
431 usb_task_thread, taskq, &taskq->task_thread_lwp,
432 "%s", taskq->name)) {
433 printf("unable to create task thread: %s\n", taskq->name);
567 struct usb_taskq *taskq;
574 taskq = &usb_taskq[queue];
575 mutex_enter(&taskq->lock);
579 TAILQ_INSERT_TAIL(&taskq->tasks, task, next);
580 cv_signal(&taskq->cv);
584 mutex_exit(&taskq->lock);
608 struct usb_taskq *taskq = &usb_taskq[queue];
609 mutex_enter(&taskq->lock);
611 TAILQ_REMOVE(&taskq->tasks, task, next);
613 mutex_exit(&taskq->lock);
618 mutex_exit(&taskq
647 struct usb_taskq *taskq;
658 taskq = &usb_taskq[queue];
659 mutex_enter(&taskq->lock);
669 while (taskq->current_task == task)
670 cv_wait(&taskq->cv, &taskq->lock);
679 TAILQ_REMOVE(&taskq->tasks, task, next);
683 mutex_exit(&taskq->lock);
774 struct usb_taskq *taskq;
777 taskq = arg;
780 USBHIST_CALLARGS(usbdebug, "start taskq %#jx",
781 (uintptr_t)taskq, 0, 0, 0);
783 mutex_enter(&taskq->lock);
785 task = TAILQ_FIRST(&taskq->tasks);
787 cv_wait(&taskq->cv, &taskq->lock);
788 task = TAILQ_FIRST(&taskq->tasks);
793 TAILQ_REMOVE(&taskq->tasks, task, next);
795 taskq->current_task = task;
796 mutex_exit(&taskq->lock);
807 mutex_enter(&taskq->lock);
808 KASSERTMSG(taskq->current_task == task,
809 "somebody scribbled on usb taskq %p", taskq);
810 taskq->current_task = NULL;
811 cv_broadcast(&taskq->cv);
814 mutex_exit(&taskq->lock);