Lines Matching defs:qp

471 	queue_head_t *qp;
484 udp->queue_head = qp = (queue_head_t *)data;
485 for (i = 0; i < 2 * QHASHSIZE; qp++, i++) {
486 qp->qh_type = (i < QHASHSIZE)? MX : CV;
487 qp->qh_lock.mutex_flag = LOCK_INITED;
488 qp->qh_lock.mutex_magic = MUTEX_MAGIC;
489 qp->qh_hlist = &qp->qh_def_root;
491 qp->qh_hlen = 1;
492 qp->qh_hmax = 1;
503 QVERIFY(queue_head_t *qp)
515 ASSERT(qp >= udp->queue_head && (qp - udp->queue_head) < 2 * QHASHSIZE);
516 ASSERT(MUTEX_OWNED(&qp->qh_lock, self));
517 for (cnt = 0, qrp = qp->qh_hlist; qrp != NULL; qrp = qrp->qr_next) {
522 ASSERT(qp->qh_hlen == cnt && qp->qh_hmax >= cnt);
523 qtype = ((qp - udp->queue_head) < QHASHSIZE)? MX : CV;
524 ASSERT(qp->qh_type == qtype);
528 for (cnt = 0, qrp = qp->qh_hlist; qrp != NULL; qrp = qrp->qr_next) {
536 ASSERT(ulwp->ul_sleepq == qp);
540 ASSERT(&udp->queue_head[index] == qp);
544 ASSERT(qp->qh_qlen == cnt);
549 #define QVERIFY(qp)
560 queue_head_t *qp;
569 if ((qp = udp->queue_head) == NULL) {
571 qp = udp->queue_head;
573 qp += QUEUE_HASH(wchan, qtype);
574 spin_lock_set(&qp->qh_lock);
575 for (qrp = qp->qh_hlist; qrp != NULL; qrp = qrp->qr_next)
578 if (qrp == NULL && qp->qh_def_root.qr_head == NULL) {
580 qrp = &qp->qh_def_root;
586 qp->qh_wchan = wchan; /* valid until queue_unlock() is called */
587 qp->qh_root = qrp; /* valid until queue_unlock() is called */
588 INCR32(qp->qh_lockcount);
589 QVERIFY(qp);
590 return (qp);
597 queue_unlock(queue_head_t *qp)
599 QVERIFY(qp);
600 spin_lock_clear(&qp->qh_lock);
611 enqueue(queue_head_t *qp, ulwp_t *ulwp, int force_fifo)
618 ASSERT(MUTEX_OWNED(&qp->qh_lock, curthread));
619 ASSERT(ulwp->ul_sleepq != qp);
621 if ((qrp = qp->qh_root) == NULL) {
624 qrp->qr_next = qp->qh_hlist;
628 qrp->qr_wchan = qp->qh_wchan;
632 qp->qh_hlist->qr_prev = qrp;
633 qp->qh_hlist = qrp;
634 qp->qh_root = qrp;
635 MAXINCR(qp->qh_hmax, qp->qh_hlen);
668 (((++qp->qh_qcnt << curthread->ul_queue_fifo) & 0xff) == 0)) {
697 ulwp->ul_sleepq = qp;
698 ulwp->ul_wchan = qp->qh_wchan;
699 ulwp->ul_qtype = qp->qh_type;
707 MAXINCR(qp->qh_qmax, qp->qh_qlen);
780 queue_slot(queue_head_t *qp, ulwp_t **prevp, int *more)
787 ASSERT(MUTEX_OWNED(&qp->qh_lock, curthread));
789 if ((qrp = qp->qh_root) == NULL || (ulwp = qrp->qr_head) == NULL) {
825 queue_unlink(queue_head_t *qp, ulwp_t **ulwpp, ulwp_t *prev)
827 queue_root_t *qrp = qp->qh_root;
832 ASSERT(MUTEX_OWNED(&qp->qh_lock, curthread));
833 ASSERT(qp->qh_wchan != NULL && ulwp->ul_wchan == qp->qh_wchan);
835 DECR(qp->qh_qlen);
864 qp->qh_hlist = nqrp;
865 qp->qh_root = nqrp;
874 qp->qh_hlist = qr_next;
875 qp->qh_root = NULL;
876 DECR(qp->qh_hlen);
882 dequeue(queue_head_t *qp, int *more)
888 if ((ulwpp = queue_slot(qp, &prev, more)) == NULL)
891 queue_unlink(qp, ulwpp, prev);
901 queue_waiter(queue_head_t *qp)
907 if ((ulwpp = queue_slot(qp, &prev, &more)) == NULL)
913 dequeue_self(queue_head_t *qp)
922 ASSERT(MUTEX_OWNED(&qp->qh_lock, self));
925 if ((qrp = qp->qh_root) != NULL) {
930 queue_unlink(qp, ulwpp, prev);
943 return ((qrp = qp->qh_root) != NULL && qrp->qr_head != NULL);
954 queue_head_t *qp;
962 qp = queue_lock(self->ul_wchan, self->ul_qtype);
969 if (qp == self->ul_sleepq)
970 (void) dequeue_self(qp);
971 queue_unlock(qp);
1618 queue_head_t *qp;
1626 qp = queue_lock(mp, MX);
1627 if ((ulwp = dequeue(qp, &more)) != NULL) {
1631 queue_unlock(qp);
1641 queue_head_t *qp;
1665 qp = queue_lock(mp, MX);
1667 if ((qrp = qp->qh_root) == NULL ||
1671 queue_unlink(qp, &qrp->qr_head, NULL);
1680 queue_unlock(qp);
1684 queue_unlock(qp);
1786 queue_head_t *qp;
1810 qp = queue_lock(mp, MX);
1811 enqueue(qp, self, 0);
1816 mp->mutex_waiters = dequeue_self(qp);
1820 queue_unlock(qp);
1835 qp = queue_lock(mp, MX);
1838 mp->mutex_waiters = queue_waiter(qp)? 1 : 0;
1847 enqueue(qp, self, 0);
1850 ASSERT(self->ul_sleepq == qp &&
1855 mp->mutex_waiters = dequeue_self(qp);
1878 queue_unlock(qp);
3181 queue_head_t *qp;
3196 qp = queue_lock(cvp, CV);
3197 enqueue(qp, self, 0);
3210 queue_unlock(qp);
3238 qp = queue_lock(cvp, CV);
3255 } else if (self->ul_sleepq == qp) { /* condvar queue */
3257 cvp->cond_waiters_user = dequeue_self(qp);
3279 queue_unlock(qp);
3703 queue_head_t *qp;
3726 qp = queue_lock(cvp, CV);
3727 ulwpp = queue_slot(qp, &prev, &more);
3730 queue_unlock(qp);
3748 queue_unlink(qp, ulwpp, prev);
3760 queue_unlock(qp);
3769 queue_unlock(qp);
3832 queue_head_t *qp;
3871 qp = queue_lock(cvp, CV);
3874 if ((qrp = qp->qh_root) == NULL ||
3878 queue_unlink(qp, &qrp->qr_head, NULL);
3904 queue_unlock(qp);
3907 queue_unlock(qp);
3968 queue_head_t *qp;
3978 for (qn = 0, qp = udp->queue_head; qn < QHASHSIZE; qn++, qp++) {
3979 if (qp->qh_lockcount == 0)
3981 spin_lock_total += qp->qh_lockcount;
3983 (u_longlong_t)qp->qh_lockcount,
3984 qp->qh_qmax, qp->qh_hmax) < 0)
3991 for (qn = 0; qn < QHASHSIZE; qn++, qp++) {
3992 if (qp->qh_lockcount == 0)
3994 spin_lock_total += qp->qh_lockcount;
3996 (u_longlong_t)qp->qh_lockcount,
3997 qp->qh_qmax, qp->qh_hmax) < 0)