Lines Matching refs:tail
55 struct ck_hp_fifo_entry *tail; member
63 fifo->head = fifo->tail = stub; in ck_hp_fifo_init()
73 fifo->head = fifo->tail = NULL; in ck_hp_fifo_deinit()
83 struct ck_hp_fifo_entry *tail, *next; in ck_hp_fifo_enqueue_mpmc() local
90 tail = ck_pr_load_ptr(&fifo->tail); in ck_hp_fifo_enqueue_mpmc()
91 ck_hp_set_fence(record, 0, tail); in ck_hp_fifo_enqueue_mpmc()
92 if (tail != ck_pr_load_ptr(&fifo->tail)) in ck_hp_fifo_enqueue_mpmc()
95 next = ck_pr_load_ptr(&tail->next); in ck_hp_fifo_enqueue_mpmc()
97 ck_pr_cas_ptr(&fifo->tail, tail, next); in ck_hp_fifo_enqueue_mpmc()
99 } else if (ck_pr_cas_ptr(&fifo->tail->next, next, entry) == true) in ck_hp_fifo_enqueue_mpmc()
104 ck_pr_cas_ptr(&fifo->tail, tail, entry); in ck_hp_fifo_enqueue_mpmc()
114 struct ck_hp_fifo_entry *tail, *next; in ck_hp_fifo_tryenqueue_mpmc() local
120 tail = ck_pr_load_ptr(&fifo->tail); in ck_hp_fifo_tryenqueue_mpmc()
121 ck_hp_set_fence(record, 0, tail); in ck_hp_fifo_tryenqueue_mpmc()
122 if (tail != ck_pr_load_ptr(&fifo->tail)) in ck_hp_fifo_tryenqueue_mpmc()
125 next = ck_pr_load_ptr(&tail->next); in ck_hp_fifo_tryenqueue_mpmc()
127 ck_pr_cas_ptr(&fifo->tail, tail, next); in ck_hp_fifo_tryenqueue_mpmc()
129 } else if (ck_pr_cas_ptr(&fifo->tail->next, next, entry) == false) in ck_hp_fifo_tryenqueue_mpmc()
133 ck_pr_cas_ptr(&fifo->tail, tail, entry); in ck_hp_fifo_tryenqueue_mpmc()
142 struct ck_hp_fifo_entry *head, *tail, *next; in ck_hp_fifo_dequeue_mpmc() local
147 tail = ck_pr_load_ptr(&fifo->tail); in ck_hp_fifo_dequeue_mpmc()
157 if (head == tail) { in ck_hp_fifo_dequeue_mpmc()
161 ck_pr_cas_ptr(&fifo->tail, tail, next); in ck_hp_fifo_dequeue_mpmc()
176 struct ck_hp_fifo_entry *head, *tail, *next; in ck_hp_fifo_trydequeue_mpmc() local
180 tail = ck_pr_load_ptr(&fifo->tail); in ck_hp_fifo_trydequeue_mpmc()
190 if (head == tail) { in ck_hp_fifo_trydequeue_mpmc()
194 ck_pr_cas_ptr(&fifo->tail, tail, next); in ck_hp_fifo_trydequeue_mpmc()