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()
375 struct rcu_cblist *rclp) in rcu_segcblist_extract_done_cbs() argument
381 rclp->len = rcu_segcblist_get_seglen(rsclp, RCU_DONE_TAIL); in rcu_segcblist_extract_done_cbs()
382 *rclp->tail = rsclp->head; in rcu_segcblist_extract_done_cbs()
385 rclp->tail = rsclp->tails[RCU_DONE_TAIL]; in rcu_segcblist_extract_done_cbs()
400 struct rcu_cblist *rclp) in rcu_segcblist_extract_pend_cbs() argument
406 rclp->len = 0; in rcu_segcblist_extract_pend_cbs()
407 *rclp->tail = *rsclp->tails[RCU_DONE_TAIL]; in rcu_segcblist_extract_pend_cbs()
408 rclp->tail = rsclp->tails[RCU_NEXT_TAIL]; in rcu_segcblist_extract_pend_cbs()
411 rclp->len += rcu_segcblist_get_seglen(rsclp, i); in rcu_segcblist_extract_pend_cbs()
422 struct rcu_cblist *rclp) in rcu_segcblist_insert_count() argument
424 rcu_segcblist_add_len(rsclp, rclp->len); in rcu_segcblist_insert_count()
432 struct rcu_cblist *rclp) in rcu_segcblist_insert_done_cbs() argument
436 if (!rclp->head) in rcu_segcblist_insert_done_cbs()
438 rcu_segcblist_add_seglen(rsclp, RCU_DONE_TAIL, rclp->len); in rcu_segcblist_insert_done_cbs()
439 *rclp->tail = rsclp->head; in rcu_segcblist_insert_done_cbs()
440 WRITE_ONCE(rsclp->head, rclp->head); in rcu_segcblist_insert_done_cbs()
443 WRITE_ONCE(rsclp->tails[i], rclp->tail); in rcu_segcblist_insert_done_cbs()
446 rclp->head = NULL; in rcu_segcblist_insert_done_cbs()
447 rclp->tail = &rclp->head; in rcu_segcblist_insert_done_cbs()
455 struct rcu_cblist *rclp) in rcu_segcblist_insert_pend_cbs() argument
457 if (!rclp->head) in rcu_segcblist_insert_pend_cbs()
460 rcu_segcblist_add_seglen(rsclp, RCU_NEXT_TAIL, rclp->len); in rcu_segcblist_insert_pend_cbs()
461 WRITE_ONCE(*rsclp->tails[RCU_NEXT_TAIL], rclp->head); in rcu_segcblist_insert_pend_cbs()
462 WRITE_ONCE(rsclp->tails[RCU_NEXT_TAIL], rclp->tail); in rcu_segcblist_insert_pend_cbs()