Lines Matching defs:sqh

1807 	sigqhdr_t *sqh;
1809 sqh = (sigqhdr_t *)sigqp->sq_backptr;
1810 ASSERT(sqh);
1812 mutex_enter(&sqh->sqb_lock);
1813 sqh->sqb_sent++;
1814 mutex_exit(&sqh->sqb_lock);
2389 sigqhdr_t *sqh;
2393 sqh = kmem_alloc(i, KM_SLEEP);
2394 sqh->sqb_count = (uchar_t)maxcount;
2395 sqh->sqb_maxcount = (uchar_t)maxcount;
2396 sqh->sqb_size = (ushort_t)i;
2397 sqh->sqb_pexited = 0;
2398 sqh->sqb_sent = 0;
2399 sqh->sqb_free = sq = (sigqueue_t *)(sqh + 1);
2406 cv_init(&sqh->sqb_cv, NULL, CV_DEFAULT, NULL);
2407 mutex_init(&sqh->sqb_lock, NULL, MUTEX_DEFAULT, NULL);
2408 return (sqh);
2418 sigqalloc(sigqhdr_t *sqh)
2424 if (sqh != NULL) {
2425 mutex_enter(&sqh->sqb_lock);
2426 if (sqh->sqb_count > 0) {
2427 sqh->sqb_count--;
2428 sq = sqh->sqb_free;
2429 sqh->sqb_free = sq->sq_next;
2430 mutex_exit(&sqh->sqb_lock);
2432 sq->sq_backptr = sqh;
2437 mutex_exit(&sqh->sqb_lock);
2449 sigqhdr_t *sqh;
2453 sqh = (sigqhdr_t *)sq->sq_backptr;
2454 mutex_enter(&sqh->sqb_lock);
2455 if (sqh->sqb_pexited && sqh->sqb_sent == 1) {
2456 mutex_exit(&sqh->sqb_lock);
2457 cv_destroy(&sqh->sqb_cv);
2458 mutex_destroy(&sqh->sqb_lock);
2459 kmem_free(sqh, sqh->sqb_size);
2461 sqh->sqb_count++;
2462 sqh->sqb_sent--;
2463 sq->sq_next = sqh->sqb_free;
2465 sqh->sqb_free = sq;
2466 cv_signal(&sqh->sqb_cv);
2467 mutex_exit(&sqh->sqb_lock);
2495 sigqhdrfree(sigqhdr_t *sqh)
2497 mutex_enter(&sqh->sqb_lock);
2498 if (sqh->sqb_sent == 0) {
2499 mutex_exit(&sqh->sqb_lock);
2500 cv_destroy(&sqh->sqb_cv);
2501 mutex_destroy(&sqh->sqb_lock);
2502 kmem_free(sqh, sqh->sqb_size);
2504 sqh->sqb_pexited = 1;
2505 mutex_exit(&sqh->sqb_lock);