1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_RCU_PENDING_H
3 #define _LINUX_RCU_PENDING_H
5 #include <linux/rcupdate.h>
8 typedef void (*rcu_pending_process_fn
)(struct rcu_pending
*, struct rcu_head
*);
10 struct rcu_pending_pcpu
;
13 struct rcu_pending_pcpu __percpu
*p
;
14 struct srcu_struct
*srcu
;
15 rcu_pending_process_fn process
;
18 void rcu_pending_enqueue(struct rcu_pending
*pending
, struct rcu_head
*obj
);
19 struct rcu_head
*rcu_pending_dequeue(struct rcu_pending
*pending
);
20 struct rcu_head
*rcu_pending_dequeue_from_all(struct rcu_pending
*pending
);
22 void rcu_pending_exit(struct rcu_pending
*pending
);
23 int rcu_pending_init(struct rcu_pending
*pending
,
24 struct srcu_struct
*srcu
,
25 rcu_pending_process_fn process
);
27 #endif /* _LINUX_RCU_PENDING_H */