Lines Matching refs:q

79 	struct queue *q;  in slp_new_queue()  local
99 if ((q = malloc(sizeof (*q))) == NULL) { in slp_new_queue()
105 q->head = NULL; in slp_new_queue()
106 q->lock = lock; in slp_new_queue()
107 q->wait = wait; in slp_new_queue()
108 q->count = 0; in slp_new_queue()
110 return (q); in slp_new_queue()
120 struct queue *q = qa; in slp_enqueue() local
127 (void) mutex_lock(q->lock); in slp_enqueue()
130 if (q->head != NULL) { /* queue is not emptry */ in slp_enqueue()
131 q->tail->next = qe; in slp_enqueue()
132 q->tail = qe; in slp_enqueue()
134 q->head = q->tail = qe; in slp_enqueue()
136 q->count++; in slp_enqueue()
137 (void) mutex_unlock(q->lock); in slp_enqueue()
138 (void) cond_signal(q->wait); in slp_enqueue()
149 struct queue *q = qa; in slp_enqueue_at_head() local
156 (void) mutex_lock(q->lock); in slp_enqueue_at_head()
158 qe->next = q->head; in slp_enqueue_at_head()
159 q->head = qe; in slp_enqueue_at_head()
161 q->count++; in slp_enqueue_at_head()
162 (void) mutex_unlock(q->lock); in slp_enqueue_at_head()
163 (void) cond_signal(q->wait); in slp_enqueue_at_head()
171 static void *dequeue_nolock(struct queue *q) { in dequeue_nolock() argument
173 slp_queue_entry_t *qe = q->head; in dequeue_nolock()
179 q->head = q->tail = NULL; in dequeue_nolock()
181 q->head = qe->next; in dequeue_nolock()
183 q->count--; in dequeue_nolock()
196 struct queue *q = qa; in slp_dequeue_timed() local
201 (void) mutex_lock(q->lock); in slp_dequeue_timed()
202 if (q->count > 0) { in slp_dequeue_timed()
208 while (q->count == 0) { in slp_dequeue_timed()
210 err = cond_timedwait(q->wait, q->lock, to); in slp_dequeue_timed()
212 err = cond_wait(q->wait, q->lock); in slp_dequeue_timed()
215 (void) mutex_unlock(q->lock); in slp_dequeue_timed()
222 ans = dequeue_nolock(q); in slp_dequeue_timed()
223 (void) mutex_unlock(q->lock); in slp_dequeue_timed()
241 struct queue *q = qa; in slp_flush_queue() local
243 for (p = q->head; p; p = pn) { in slp_flush_queue()
255 struct queue *q = qa; in slp_destroy_queue() local
257 (void) mutex_destroy(q->lock); in slp_destroy_queue()
258 (void) cond_destroy(q->wait); in slp_destroy_queue()
259 free(q->lock); in slp_destroy_queue()
260 free(q->wait); in slp_destroy_queue()
261 free(q); in slp_destroy_queue()