Searched refs:mpqh_head (Results 1 – 2 of 2) sorted by relevance
| /xnu-10063.141.1/osfmk/kern/ |
| H A D | mpsc_queue.c | 62 mpsc_queue_chain_t head = os_atomic_load(&q->mpqh_head.mpqc_next, relaxed); in mpsc_queue_restore_batch() 67 !os_atomic_cmpxchg(&q->mpqh_tail, &q->mpqh_head, last, release)) { in mpsc_queue_restore_batch() 68 head = os_atomic_load(&q->mpqh_head.mpqc_next, relaxed); in mpsc_queue_restore_batch() 70 head = _mpsc_queue_wait_for_enqueuer(&q->mpqh_head.mpqc_next); in mpsc_queue_restore_batch() 75 os_atomic_store(&q->mpqh_head.mpqc_next, first, relaxed); in mpsc_queue_restore_batch() 87 if (__improbable(tail == &q->mpqh_head)) { in mpsc_queue_dequeue_batch() 92 head = os_atomic_load(&q->mpqh_head.mpqc_next, relaxed); in mpsc_queue_dequeue_batch() 94 head = _mpsc_queue_wait_for_enqueuer(&q->mpqh_head.mpqc_next); in mpsc_queue_dequeue_batch() 96 os_atomic_store(&q->mpqh_head.mpqc_next, NULL, relaxed); in mpsc_queue_dequeue_batch() 112 *tail_out = os_atomic_xchg(&q->mpqh_tail, &q->mpqh_head, seq_cst); in mpsc_queue_dequeue_batch()
|
| H A D | mpsc_queue.h | 120 struct mpsc_queue_chain mpqh_head; member 137 #define MPSC_QUEUE_INITIALIZER(head) { .mpqh_tail = &(head).mpqh_head } 157 os_atomic_init(&q->mpqh_head.mpqc_next, NULL); in mpsc_queue_init() 158 os_atomic_init(&q->mpqh_tail, &q->mpqh_head); in mpsc_queue_init() 240 return &q->mpqh_head == prev; in __mpsc_queue_append_was_empty()
|