allocq
qp = allocq();
rq = allocq();
passq = allocq();
extern queue_t *allocq(void);
struct sm_freeq *allocq, *releq;
allocq = sm->sm_allocq;
mutex_enter(&allocq->smq_mtx);
if ((smp = allocq->smq_free) == NULL) {
if (sm->sm_allocq != allocq) {
mutex_exit(&allocq->smq_mtx);
mutex_exit(&allocq->smq_mtx);
mutex_exit(&allocq->smq_mtx);
sm->sm_releq = allocq;
mutex_exit(&allocq->smq_mtx);
ASSERT(first == allocq->smq_free);
allocq->smq_free = smp->sm_next;
if (allocq->smq_free == smp)
allocq->smq_free = NULL;
mutex_exit(&allocq->smq_mtx);
union vpm_freeq *allocq, *releq;
allocq = vpmflp->vpm_allocq;
mutex_enter(&allocq->vpmq_mtx);
if ((vpm = allocq->vpmq_free) == NULL) {
if (vpmflp->vpm_allocq != allocq) {
mutex_exit(&allocq->vpmq_mtx);
mutex_exit(&allocq->vpmq_mtx);
mutex_exit(&allocq->vpmq_mtx);
vpmflp->vpm_releq = allocq;
mutex_exit(&allocq->vpmq_mtx);
ASSERT(first == allocq->vpmq_free);
allocq->vpmq_free = vpm->vpm_next;
if (allocq->vpmq_free == vpm)
allocq->vpmq_free = NULL;
mutex_exit(&allocq->vpmq_mtx);
mutex_exit(&allocq->vpmq_mtx);