Lines Matching refs:rclp
18 void rcu_cblist_init(struct rcu_cblist *rclp) in rcu_cblist_init() argument
20 rclp->head = NULL; in rcu_cblist_init()
21 rclp->tail = &rclp->head; in rcu_cblist_init()
22 rclp->len = 0; in rcu_cblist_init()
28 void rcu_cblist_enqueue(struct rcu_cblist *rclp, struct rcu_head *rhp) in rcu_cblist_enqueue() argument
30 *rclp->tail = rhp; in rcu_cblist_enqueue()
31 rclp->tail = &rhp->next; in rcu_cblist_enqueue()
32 WRITE_ONCE(rclp->len, rclp->len + 1); in rcu_cblist_enqueue()
67 struct rcu_head *rcu_cblist_dequeue(struct rcu_cblist *rclp) in rcu_cblist_dequeue() argument
71 rhp = rclp->head; in rcu_cblist_dequeue()
74 rclp->len--; in rcu_cblist_dequeue()
75 rclp->head = rhp->next; in rcu_cblist_dequeue()
76 if (!rclp->head) in rcu_cblist_dequeue()
77 rclp->tail = &rclp->head; in rcu_cblist_dequeue()
386 struct rcu_cblist *rclp) in rcu_segcblist_extract_done_cbs() argument
392 rclp->len = rcu_segcblist_get_seglen(rsclp, RCU_DONE_TAIL); in rcu_segcblist_extract_done_cbs()
393 *rclp->tail = rsclp->head; in rcu_segcblist_extract_done_cbs()
396 rclp->tail = rsclp->tails[RCU_DONE_TAIL]; in rcu_segcblist_extract_done_cbs()
411 struct rcu_cblist *rclp) in rcu_segcblist_extract_pend_cbs() argument
417 rclp->len = 0; in rcu_segcblist_extract_pend_cbs()
418 *rclp->tail = *rsclp->tails[RCU_DONE_TAIL]; in rcu_segcblist_extract_pend_cbs()
419 rclp->tail = rsclp->tails[RCU_NEXT_TAIL]; in rcu_segcblist_extract_pend_cbs()
422 rclp->len += rcu_segcblist_get_seglen(rsclp, i); in rcu_segcblist_extract_pend_cbs()
433 struct rcu_cblist *rclp) in rcu_segcblist_insert_count() argument
435 rcu_segcblist_add_len(rsclp, rclp->len); in rcu_segcblist_insert_count()
443 struct rcu_cblist *rclp) in rcu_segcblist_insert_done_cbs() argument
447 if (!rclp->head) in rcu_segcblist_insert_done_cbs()
449 rcu_segcblist_add_seglen(rsclp, RCU_DONE_TAIL, rclp->len); in rcu_segcblist_insert_done_cbs()
450 *rclp->tail = rsclp->head; in rcu_segcblist_insert_done_cbs()
451 WRITE_ONCE(rsclp->head, rclp->head); in rcu_segcblist_insert_done_cbs()
454 WRITE_ONCE(rsclp->tails[i], rclp->tail); in rcu_segcblist_insert_done_cbs()
457 rclp->head = NULL; in rcu_segcblist_insert_done_cbs()
458 rclp->tail = &rclp->head; in rcu_segcblist_insert_done_cbs()
466 struct rcu_cblist *rclp) in rcu_segcblist_insert_pend_cbs() argument
468 if (!rclp->head) in rcu_segcblist_insert_pend_cbs()
471 rcu_segcblist_add_seglen(rsclp, RCU_NEXT_TAIL, rclp->len); in rcu_segcblist_insert_pend_cbs()
472 WRITE_ONCE(*rsclp->tails[RCU_NEXT_TAIL], rclp->head); in rcu_segcblist_insert_pend_cbs()
473 WRITE_ONCE(rsclp->tails[RCU_NEXT_TAIL], rclp->tail); in rcu_segcblist_insert_pend_cbs()