Lines Matching defs:queue
112 /* routines for managing a command/response queue */
145 struct crq_queue *queue = &adapter->queue;
155 queue->msg_token,
156 queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL);
157 free_page((unsigned long)queue->msgs);
175 struct crq_queue *queue = &adapter->queue;
181 /* Clean out the queue */
182 memset(queue->msgs, 0x00, PAGE_SIZE);
183 queue->cur = 0;
188 queue->msg_token, PAGE_SIZE);
199 * crq_queue_next_crq: - Returns the next entry in message queue
200 * @queue: crq_queue to use
202 * Returns pointer to next entry in queue, or NULL if there are no new
205 static struct ibmvmc_crq_msg *crq_queue_next_crq(struct crq_queue *queue)
210 spin_lock_irqsave(&queue->lock, flags);
211 crq = &queue->msgs[queue->cur];
213 if (++queue->cur == queue->size)
214 queue->cur = 0;
224 spin_unlock_irqrestore(&queue->lock, flags);
267 * Allocates memory for the command queue and maps remote memory into an
304 * Releases memory for a command queue and unmaps mapped remote memory.
665 crq_msg.crq_size = cpu_to_be16(adapter->queue.size);
1686 dev_err(adapter->dev, "outbound buffer queue wrapped.\n");
2044 * Read the command elements from the command queue and execute the
2079 while ((crq = crq_queue_next_crq(&adapter->queue)) != NULL) {
2090 crq = crq_queue_next_crq(&adapter->queue);
2118 struct crq_queue *queue = &adapter->queue;
2122 queue->msgs = (struct ibmvmc_crq_msg *)get_zeroed_page(GFP_KERNEL);
2124 if (!queue->msgs)
2127 queue->size = PAGE_SIZE / sizeof(*queue->msgs);
2129 queue->msg_token = dma_map_single(adapter->dev, queue->msgs,
2130 queue->size * sizeof(*queue->msgs),
2133 if (dma_mapping_error(adapter->dev, queue->msg_token))
2138 queue->msg_token, PAGE_SIZE);
2152 queue->cur = 0;
2153 spin_lock_init(&queue->lock);
2181 queue->msg_token,
2182 queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL);
2184 free_page((unsigned long)queue->msgs);