Lines Matching refs:queue
78 camq_fini(struct camq *queue) in camq_fini() argument
80 if (queue->queue_array != NULL) { in camq_fini()
81 free(queue->queue_array, M_CAMQ); in camq_fini()
86 camq_resize(struct camq *queue, int new_size) in camq_resize() argument
90 KASSERT(new_size >= queue->entries, ("camq_resize: " in camq_resize()
92 new_size, queue->entries)); in camq_resize()
104 if (queue->queue_array != NULL) { in camq_resize()
105 bcopy(queue->queue_array, new_array, in camq_resize()
106 (queue->entries + 1) * sizeof(cam_pinfo *)); in camq_resize()
107 free(queue->queue_array, M_CAMQ); in camq_resize()
109 queue->queue_array = new_array; in camq_resize()
110 queue->array_size = new_size; in camq_resize()
120 camq_insert(struct camq *queue, cam_pinfo *new_entry) in camq_insert() argument
123 KASSERT(queue->entries < queue->array_size, in camq_insert()
125 queue->entries, queue->array_size)); in camq_insert()
126 queue->entries++; in camq_insert()
127 queue->queue_array[queue->entries] = new_entry; in camq_insert()
128 new_entry->index = queue->entries; in camq_insert()
129 if (queue->entries != 0) in camq_insert()
130 heap_up(queue->queue_array, queue->entries); in camq_insert()
140 camq_remove(struct camq *queue, int index) in camq_remove() argument
144 if (index <= 0 || index > queue->entries) in camq_remove()
146 "from queue %p of size %d", __func__, index, queue, in camq_remove()
147 queue->entries); in camq_remove()
149 removed_entry = queue->queue_array[index]; in camq_remove()
150 if (queue->entries != index) { in camq_remove()
151 queue->queue_array[index] = queue->queue_array[queue->entries]; in camq_remove()
152 queue->queue_array[index]->index = index; in camq_remove()
153 heap_down(queue->queue_array, index, queue->entries - 1); in camq_remove()
156 queue->entries--; in camq_remove()
167 camq_change_priority(struct camq *queue, int index, uint32_t new_priority) in camq_change_priority() argument
169 if (new_priority > queue->queue_array[index]->priority) { in camq_change_priority()
170 queue->queue_array[index]->priority = new_priority; in camq_change_priority()
171 heap_down(queue->queue_array, index, queue->entries); in camq_change_priority()
174 queue->queue_array[index]->priority = new_priority; in camq_change_priority()
175 heap_up(queue->queue_array, index); in camq_change_priority()
264 if (new_size > ccbq->queue.array_size) in cam_ccbq_resize()
265 return (camq_resize(&ccbq->queue, new_size)); in cam_ccbq_resize()
274 if (camq_init(&ccbq->queue, in cam_ccbq_init()
286 camq_fini(&ccbq->queue); in cam_ccbq_fini()