Lines Matching refs:uh
586 struct umtxq_queue *uh;
591 LIST_FOREACH(uh, &uc->uc_queue[q], link) {
592 if (umtx_key_match(&uh->key, key))
593 return (uh);
602 struct umtxq_queue *uh;
608 uh = umtxq_queue_lookup(&uq->uq_key, q);
609 if (uh != NULL) {
612 uh = uq->uq_spare_queue;
613 uh->key = uq->uq_key;
614 LIST_INSERT_HEAD(&uc->uc_queue[q], uh, link);
626 TAILQ_INSERT_TAIL(&uh->head, uq, uq_link);
627 uh->length++;
629 uq->uq_cur_queue = uh;
637 struct umtxq_queue *uh;
642 uh = uq->uq_cur_queue;
643 TAILQ_REMOVE(&uh->head, uq, uq_link);
644 uh->length--;
646 if (TAILQ_EMPTY(&uh->head)) {
647 KASSERT(uh->length == 0,
652 LIST_REMOVE(uh, link);
654 uh = LIST_FIRST(&uc->uc_spare_queue);
655 KASSERT(uh != NULL, ("uc_spare_queue is empty"));
656 LIST_REMOVE(uh, link);
658 uq->uq_spare_queue = uh;
669 struct umtxq_queue *uh;
672 uh = umtxq_queue_lookup(key, UMTX_SHARED_QUEUE);
673 if (uh != NULL)
674 return (uh->length);
685 struct umtxq_queue *uh;
689 uh = umtxq_queue_lookup(key, UMTX_SHARED_QUEUE);
690 if (uh != NULL) {
691 *first = TAILQ_FIRST(&uh->head);
692 return (uh->length);
704 struct umtxq_queue *uh;
710 uh = umtxq_queue_lookup(key, q);
711 if (uh != NULL) {
712 while ((uq = TAILQ_FIRST(&uh->head)) != NULL) {