28 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _LINUX_RCU_PENDING_H3#define _LINUX_RCU_PENDING_H4 5#include <linux/rcupdate.h>6 7struct rcu_pending;8typedef void (*rcu_pending_process_fn)(struct rcu_pending *, struct rcu_head *);9 10struct rcu_pending_pcpu;11 12struct rcu_pending {13 struct rcu_pending_pcpu __percpu *p;14 struct srcu_struct *srcu;15 rcu_pending_process_fn process;16};17 18void rcu_pending_enqueue(struct rcu_pending *pending, struct rcu_head *obj);19struct rcu_head *rcu_pending_dequeue(struct rcu_pending *pending);20struct rcu_head *rcu_pending_dequeue_from_all(struct rcu_pending *pending);21 22void rcu_pending_exit(struct rcu_pending *pending);23int rcu_pending_init(struct rcu_pending *pending,24 struct srcu_struct *srcu,25 rcu_pending_process_fn process);26 27#endif /* _LINUX_RCU_PENDING_H */28