Lines Matching refs:queue
64 md_flush_queue(md_event_queue_t *queue)
72 if (queue->mdn_waiting)
79 element = queue->mdn_front;
85 queue->mdn_front = queue->mdn_tail = NULL;
95 md_event_queue_t *queue;
102 for (queue = md_event_queue; queue; queue = queue->mdn_nextq) {
103 if (queue->mdn_size >= md_max_notify_queue) {
104 ASSERT(queue->mdn_front != NULL);
105 ASSERT(queue->mdn_front->mdn_next != NULL);
106 entry = queue->mdn_front;
107 queue->mdn_front = entry->mdn_next;
108 queue->mdn_size--;
109 queue->mdn_flags |= MD_EVENT_QUEUE_FULL;
114 queue->mdn_flags |= MD_EVENT_QUEUE_INVALID;
124 if (queue->mdn_front == NULL) {
125 queue->mdn_front = entry;
126 queue->mdn_tail = entry;
128 queue->mdn_tail->mdn_next = entry;
129 queue->mdn_tail = entry;
131 if (queue->mdn_waiting)
132 cv_signal(&queue->mdn_cv);
134 queue->mdn_size++;
157 /* check for long term event queue */
167 /* see if queue is a "marked queue" if so destroy */
203 md_event_queue_t *orig_queue, *queue, *queue_free;
227 for (queue = orig_queue; queue;
228 queue = queue->mdn_nextq) {
229 if (queue->mdn_waiting == 0) {
232 queue->mdn_flags = MD_EVENT_QUEUE_DESTROY;
234 cv_broadcast(&queue->mdn_cv);
239 for (queue = orig_queue; queue; ) {
240 if (md_flush_queue(queue)) {
241 cmn_err(CE_WARN, "md: queue not freed");
245 queue_free = queue;
246 queue = queue->mdn_nextq;
431 /* allocate and initialize queue head */
528 } else { /* no elements on queue */
563 * Turn orphaned queue off for testing purposes.