Lines Matching defs:queue
59 * on a target(s) CPU's work queue. Any synchronization is handled by passing
107 #define XC_MSG_FREE (0) /* msg in xc_free queue */
153 * Put a message into a queue. The insertion is atomic no matter
154 * how many different inserts/extracts to the same queue happen.
157 xc_insert(void *queue, xc_msg_t *msg)
163 * the xc_master CPUs xc_free queue.
167 queue == &cpu[msg->xc_master]->cpu_m.xc_free);
170 old_head = (xc_msg_t *)*(volatile xc_msg_t **)queue;
172 } while (atomic_cas_ptr(queue, old_head, msg) != old_head);
176 * Extract a message from a queue. The extraction is atomic only
177 * when just one thread does extractions from the queue.
178 * If the queue is empty, NULL is returned.
181 xc_extract(xc_msg_t **queue)
186 old_head = (xc_msg_t *)*(volatile xc_msg_t **)queue;
189 } while (atomic_cas_ptr(queue, old_head, old_head->xc_next) !=
214 * message queue.