Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _LINUX_RCU_PENDING_H
3#define _LINUX_RCU_PENDING_H
4
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 */