Lines Matching defs:ts

36  *	ts = turnstile_lookup(lp);
38 * turnstile_block(ts, TS_READER_Q, lp, &foo_sobj_ops);
42 * ts = turnstile_lookup(lp);
46 * turnstile_wakeup(ts, TS_WRITER_Q, nwaiters, new_owner or NULL);
182 turnstile_pi_inherit(turnstile_t *ts, kthread_t *inheritor, pri_t epri)
185 ASSERT(DISP_LOCK_HELD(&TURNSTILE_CHAIN(ts->ts_sobj).tc_lock));
190 if (ts->ts_inheritor == NULL) {
191 ts->ts_inheritor = inheritor;
192 ts->ts_epri = epri;
194 ts->ts_prioinv = inheritor->t_prioinv;
195 inheritor->t_prioinv = ts;
202 ASSERT(ts->ts_inheritor == inheritor);
203 if (ts->ts_epri < epri)
204 ts->ts_epri = epri;
216 turnstile_pi_tsdelete(turnstile_t *ts, kthread_t *inheritor)
224 if (tsp == ts)
240 turnstile_pi_waive(turnstile_t *ts)
242 kthread_t *inheritor = ts->ts_inheritor;
248 new_epri = turnstile_pi_tsdelete(ts, inheritor);
251 ts->ts_inheritor = NULL;
284 turnstile_t *ts;
289 for (ts = tc->tc_first; ts != NULL; ts = ts->ts_next)
290 if (ts->ts_sobj == sobj)
293 return (ts);
406 turnstile_block(turnstile_t *ts, int qnum, void *sobj, sobj_ops_t *sobj_ops,
423 if (ts == NULL) {
428 ts = t->t_ts;
429 ts->ts_sobj = sobj;
430 ts->ts_next = tc->tc_first;
431 tc->tc_first = ts;
432 ASSERT(ts->ts_waiters == 0);
440 myts->ts_free = ts->ts_free;
441 ts->ts_free = myts;
442 t->t_ts = ts;
443 ASSERT(ts->ts_sobj == sobj);
444 ASSERT(ts->ts_waiters > 0);
479 ts->ts_waiters++;
480 sleepq_insert(&ts->ts_sleepq[qnum], t);
484 panic("turnstile_block(%p): unowned mutex", (void *)ts);
660 turnstile_t *ts = t->t_ts;
661 turnstile_chain_t *tc = &TURNSTILE_CHAIN(ts->ts_sobj);
667 if ((tsfree = ts->ts_free) != NULL) {
668 ASSERT(ts->ts_waiters > 1);
671 ts->ts_free = tsfree->ts_free;
683 ASSERT(ts->ts_waiters == 1);
684 if (ts->ts_inheritor != NULL) {
685 (void) turnstile_pi_tsdelete(ts, ts->ts_inheritor);
698 ts->ts_inheritor = NULL;
701 while (*tspp != ts)
703 *tspp = ts->ts_next;
704 ASSERT(t->t_ts == ts);
706 ts->ts_waiters--;
718 turnstile_wakeup(turnstile_t *ts, int qnum, int nthreads, kthread_t *owner)
720 turnstile_chain_t *tc = &TURNSTILE_CHAIN(ts->ts_sobj);
721 sleepq_t *sqp = &ts->ts_sleepq[qnum];
728 if (ts->ts_inheritor != NULL) {
729 turnstile_pi_waive(ts);
733 ASSERT(t->t_ts == ts);
734 ASSERT(ts->ts_waiters > 1 || ts->ts_inheritor == NULL);
743 kthread_t *wp = ts->ts_sleepq[TS_WRITER_Q].sq_first;
744 kthread_t *rp = ts->ts_sleepq[TS_READER_Q].sq_first;
747 turnstile_pi_inherit(ts, t, MAX(wpri, rpri));