Lines Matching refs:queue
2 * CAM request queue management definitions.
36 #include <sys/queue.h>
40 * This structure implements a heap based priority queue. The queue
59 struct camq queue;
106 * Resize a cam queue
108 u_int32_t camq_resize(struct camq *queue, int new_size);
120 void camq_free(struct camq *queue);
125 void camq_fini(struct camq *queue);
128 * cam_queue_insert: Given a CAM queue with at least one open spot,
131 void camq_insert(struct camq *queue, cam_pinfo *new_entry);
134 * camq_remove: Remove and arbitrary entry from the queue maintaining
135 * queue order.
137 cam_pinfo *camq_remove(struct camq *queue, int index);
138 #define CAMQ_HEAD 1 /* Head of queue index */
149 * maintaining queue order.
151 void camq_change_priority(struct camq *queue, int index,
170 cam_ccbq_send_ccb(struct cam_ccbq *queue, union ccb *send_ccb);
182 return (ccbq->queue.entries + ccbq->queue_extra_entries);
196 struct camq *queue = &ccbq->queue;
201 * If queue is already full, try to resize.
204 if (queue->entries == queue->array_size &&
205 camq_resize(&ccbq->queue, queue->array_size * 2) != CAM_REQ_CMP) {
206 old_ccb = (struct ccb_hdr *)camq_remove(queue, queue->entries);
213 camq_insert(queue, &new_ccb->ccb_h.pinfo);
220 struct camq *queue = &ccbq->queue;
231 camq_remove(queue, ccb->ccb_h.pinfo.index);
235 * to the emptied space in the queue.
249 camq_insert(queue, &bccb->pinfo);
255 return((union ccb *)ccbq->queue.queue_array[index]);