Lines Matching refs:prod_head

564 	uint32_t prod_head, prod_next, cons;  in buf_ring_sc_enqueue()  local
582 prod_head = br->br_prod_head; in buf_ring_sc_enqueue()
592 …while (BR_HANDOFF(br) && (prod_head & BR_RING_FLAGS_MASK) == BR_RING_OWNED && budget > 0 && domain… in buf_ring_sc_enqueue()
593 prod_head = br->br_prod_head; in buf_ring_sc_enqueue()
594 pidx = BR_INDEX(br, prod_head); in buf_ring_sc_enqueue()
611 prod_next = pidx_next | BR_RING_PENDING | (prod_head & BR_RING_FLAGS_MASK); in buf_ring_sc_enqueue()
615 if (atomic_cmpset_acq_32(&br->br_prod_head, prod_head, prod_next)) { in buf_ring_sc_enqueue()
620 prod_head = br->br_prod_head; in buf_ring_sc_enqueue()
624 prod_head = br->br_prod_head; in buf_ring_sc_enqueue()
625 pidx = BR_INDEX(br, prod_head); in buf_ring_sc_enqueue()
643 prod_next |= (prod_head & BR_RING_FLAGS_MASK); in buf_ring_sc_enqueue()
652 if ((prod_head & BR_RING_FLAGS_MASK) == 0 && budget > 0 && domainvalid) { in buf_ring_sc_enqueue()
657 } while (!atomic_cmpset_acq_32(&br->br_prod_head, prod_head, prod_next)); in buf_ring_sc_enqueue()
661 brsc_entry_set(br, (BR_INDEX(br, prod_head)-(count-1))+i, ents[i]); in buf_ring_sc_enqueue()
669 while (br->br_prod_tail != BR_INDEX(br, prod_head)) in buf_ring_sc_enqueue()
916 uint32_t prod_head, cons_next; in buf_ring_sc_unlock() local
944 prod_head = br->br_prod_head; in buf_ring_sc_unlock()
945 pending = !!(prod_head & BR_RING_PENDING); in buf_ring_sc_unlock()
946 } while (!atomic_cmpset_rel_32(&br->br_prod_head, prod_head, prod_head & ~BR_RING_OWNED)); in buf_ring_sc_unlock()