Lines Matching refs:sqh

1824 	sigqhdr_t *sqh;
1826 sqh = (sigqhdr_t *)sigqp->sq_backptr;
1827 ASSERT(sqh);
1829 mutex_enter(&sqh->sqb_lock);
1830 sqh->sqb_sent++;
1831 mutex_exit(&sqh->sqb_lock);
2400 sigqhdr_t *sqh;
2410 sqh = kmem_alloc(i, KM_SLEEP);
2411 sqh->sqb_count = maxcount;
2412 sqh->sqb_maxcount = maxcount;
2413 sqh->sqb_size = i;
2414 sqh->sqb_pexited = 0;
2415 sqh->sqb_sent = 0;
2416 sqh->sqb_free = sq = (sigqueue_t *)(sqh + 1);
2423 cv_init(&sqh->sqb_cv, NULL, CV_DEFAULT, NULL);
2424 mutex_init(&sqh->sqb_lock, NULL, MUTEX_DEFAULT, NULL);
2425 return (sqh);
2436 sigqalloc(sigqhdr_t *sqh)
2442 if (sqh != NULL) {
2443 mutex_enter(&sqh->sqb_lock);
2444 if (sqh->sqb_count > 0) {
2445 sqh->sqb_count--;
2446 if (sqh->sqb_free == NULL) {
2453 sq = sqh->sqb_free;
2455 sqh->sqb_free = sq->sq_next;
2457 mutex_exit(&sqh->sqb_lock);
2459 sq->sq_backptr = sqh;
2463 mutex_exit(&sqh->sqb_lock);
2475 sigqhdr_t *sqh;
2479 sqh = (sigqhdr_t *)sq->sq_backptr;
2480 mutex_enter(&sqh->sqb_lock);
2481 if (sqh->sqb_pexited && sqh->sqb_sent == 1) {
2482 mutex_exit(&sqh->sqb_lock);
2483 cv_destroy(&sqh->sqb_cv);
2484 mutex_destroy(&sqh->sqb_lock);
2485 kmem_free(sqh, sqh->sqb_size);
2487 sqh->sqb_count++;
2488 sqh->sqb_sent--;
2489 sq->sq_next = sqh->sqb_free;
2491 sqh->sqb_free = sq;
2492 cv_signal(&sqh->sqb_cv);
2493 mutex_exit(&sqh->sqb_lock);
2521 sigqhdrfree(sigqhdr_t *sqh)
2523 mutex_enter(&sqh->sqb_lock);
2524 if (sqh->sqb_sent == 0) {
2525 mutex_exit(&sqh->sqb_lock);
2526 cv_destroy(&sqh->sqb_cv);
2527 mutex_destroy(&sqh->sqb_lock);
2528 kmem_free(sqh, sqh->sqb_size);
2530 sqh->sqb_pexited = 1;
2531 mutex_exit(&sqh->sqb_lock);