Lines Matching refs:ct
90 static callb_table_t *ct = &callb_table;
112 mutex_enter(&ct->ct_lock);
114 while ((cp = ct->ct_freelist) != NULL) {
115 ct->ct_freelist = cp->c_next;
116 ct->ct_ncallb--;
119 if (ct->ct_ncallb == 0)
122 mutex_exit(&ct->ct_lock);
123 tsleep(ct, 0, "callb", hz / 4);
124 mutex_enter(&ct->ct_lock);
126 if (ct->ct_ncallb > 0)
127 printf("%s: Leaked %d callbacks!\n", __func__, ct->ct_ncallb);
128 mutex_exit(&ct->ct_lock);
144 mutex_enter(&ct->ct_lock);
145 while (ct->ct_busy)
146 cv_wait(&ct->ct_busy_cv, &ct->ct_lock);
147 if ((cp = ct->ct_freelist) == NULL) {
148 ct->ct_ncallb++;
151 ct->ct_freelist = cp->c_next;
168 cp->c_next = ct->ct_first_cb[class];
169 ct->ct_first_cb[class] = cp;
171 mutex_exit(&ct->ct_lock);
212 mutex_enter(&ct->ct_lock);
215 pp = &ct->ct_first_cb[me->c_class];
223 mutex_exit(&ct->ct_lock);
235 cv_wait(&me->c_done_cv, &ct->ct_lock);
242 me->c_next = ct->ct_freelist;
243 ct->ct_freelist = me;
245 mutex_exit(&ct->ct_lock);
263 mutex_enter(&ct->ct_lock);
265 for (cp = ct->ct_first_cb[class];
268 cv_wait(&cp->c_done_cv, &ct->ct_lock);
281 mutex_exit(&ct->ct_lock);
285 mutex_enter(&ct->ct_lock);
290 mutex_exit(&ct->ct_lock);
352 mutex_enter(&ct->ct_lock);
353 ASSERT(!ct->ct_busy);
354 ct->ct_busy = B_TRUE;
355 mutex_exit(&ct->ct_lock);
364 mutex_enter(&ct->ct_lock);
365 ASSERT(ct->ct_busy);
366 ct->ct_busy = B_FALSE;
367 cv_broadcast(&ct->ct_busy_cv);
368 mutex_exit(&ct->ct_lock);