Lines Matching refs:wq

44 waitq_init(waitq_t *wq)  in waitq_init()  argument
46 DISP_LOCK_INIT(&wq->wq_lock); in waitq_init()
47 wq->wq_first = NULL; in waitq_init()
48 wq->wq_count = 0; in waitq_init()
49 wq->wq_blocked = B_TRUE; in waitq_init()
53 waitq_fini(waitq_t *wq) in waitq_fini() argument
55 ASSERT(wq->wq_count == 0); in waitq_fini()
56 ASSERT(wq->wq_first == NULL); in waitq_fini()
57 ASSERT(wq->wq_blocked == B_TRUE); in waitq_fini()
58 ASSERT(!DISP_LOCK_HELD(&wq->wq_lock)); in waitq_fini()
60 DISP_LOCK_DESTROY(&wq->wq_lock); in waitq_fini()
119 waitq_link(waitq_t *wq, kthread_t *t) in waitq_link() argument
126 ASSERT(DISP_LOCK_HELD(&wq->wq_lock)); in waitq_link()
129 tpp = &wq->wq_first; in waitq_link()
149 wq->wq_count++; in waitq_link()
150 t->t_waitq = wq; in waitq_link()
154 waitq_unlink(waitq_t *wq, kthread_t *t) in waitq_unlink() argument
160 ASSERT(DISP_LOCK_HELD(&wq->wq_lock)); in waitq_unlink()
161 ASSERT(t->t_waitq == wq); in waitq_unlink()
191 wq->wq_count--; in waitq_unlink()
203 waitq_enqueue(waitq_t *wq, kthread_t *t) in waitq_enqueue() argument
210 disp_lock_enter_high(&wq->wq_lock); in waitq_enqueue()
215 if (wq->wq_blocked) { in waitq_enqueue()
216 disp_lock_exit_high(&wq->wq_lock); in waitq_enqueue()
232 waitq_link(wq, t); in waitq_enqueue()
234 THREAD_WAIT(t, &wq->wq_lock); in waitq_enqueue()
245 waitq_t *wq = t->t_waitq; in waitq_change_pri() local
249 ASSERT(wq != NULL); in waitq_change_pri()
251 waitq_unlink(wq, t); in waitq_change_pri()
253 waitq_link(wq, t); in waitq_change_pri()
257 waitq_dequeue(waitq_t *wq, kthread_t *t) in waitq_dequeue() argument
260 ASSERT(t->t_waitq == wq); in waitq_dequeue()
263 waitq_unlink(wq, t); in waitq_dequeue()
279 waitq_isempty(waitq_t *wq) in waitq_isempty() argument
281 return (wq->wq_count == 0); in waitq_isempty()
291 waitq_t *wq = t->t_waitq; in waitq_setrun() local
296 if (wq == NULL) in waitq_setrun()
298 waitq_dequeue(wq, t); in waitq_setrun()
306 waitq_takeone(waitq_t *wq) in waitq_takeone() argument
310 disp_lock_enter(&wq->wq_lock); in waitq_takeone()
314 if ((t = wq->wq_first) != NULL) in waitq_takeone()
315 waitq_dequeue(wq, wq->wq_first); in waitq_takeone()
317 disp_lock_exit(&wq->wq_lock); in waitq_takeone()
326 waitq_runfirst(waitq_t *wq) in waitq_runfirst() argument
330 t = waitq_takeone(wq); in waitq_runfirst()
348 waitq_runone(waitq_t *wq) in waitq_runone() argument
350 (void) waitq_runfirst(wq); in waitq_runone()
357 waitq_runall(waitq_t *wq) in waitq_runall() argument
359 while (waitq_runfirst(wq) != NULL) in waitq_runall()
369 waitq_block(waitq_t *wq) in waitq_block() argument
371 ASSERT(!wq->wq_blocked); in waitq_block()
372 disp_lock_enter(&wq->wq_lock); in waitq_block()
373 wq->wq_blocked = B_TRUE; in waitq_block()
374 disp_lock_exit(&wq->wq_lock); in waitq_block()
375 waitq_runall(wq); in waitq_block()
376 ASSERT(waitq_isempty(wq)); in waitq_block()
383 waitq_unblock(waitq_t *wq) in waitq_unblock() argument
385 disp_lock_enter(&wq->wq_lock); in waitq_unblock()
387 ASSERT(waitq_isempty(wq)); in waitq_unblock()
388 ASSERT(wq->wq_blocked); in waitq_unblock()
390 wq->wq_blocked = B_FALSE; in waitq_unblock()
392 disp_lock_exit(&wq->wq_lock); in waitq_unblock()