Home
last modified time | relevance | path

Searched refs:mpqh_head (Results 1 – 2 of 2) sorted by relevance

/xnu-10063.141.1/osfmk/kern/
H A Dmpsc_queue.c62 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 Dmpsc_queue.h120 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()