RCU
include/sync/rcu.h View source View on GitHubStructs
Section titled “Structs”rcu_cb
Section titled “rcu_cb”struct rcu_cb {
struct list_head list;
rcu_fn fn;
void *arg;
size_t gen_when_called;
size_t enqueued_waiting_on_gen;
size_t target_gen;
}; Type Aliases
Section titled “Type Aliases”rcu_fn
Section titled “rcu_fn”typedef void (*rcu_fn)(struct rcu_cb * *, void * *); Functions
Section titled “Functions”rcu_init
Section titled “rcu_init”void rcu_init(void); rcu_read_lock
Section titled “rcu_read_lock”void rcu_read_lock(void); rcu_read_unlock
Section titled “rcu_read_unlock”void rcu_read_unlock(void); rcu_synchronize
Section titled “rcu_synchronize”void rcu_synchronize(void); rcu_defer
Section titled “rcu_defer”void rcu_defer(struct rcu_cb *cb, rcu_fn fn, void *arg); rcu_note_context_switch
Section titled “rcu_note_context_switch”void rcu_note_context_switch(struct thread *outgoing, bool next_is_idle); rcu_note_irq_exit
Section titled “rcu_note_irq_exit”void rcu_note_irq_exit(void); Macros
Section titled “Macros”rcu_cb_from_list_node
Section titled “rcu_cb_from_list_node”#define rcu_cb_from_list_node(ln) (container_of(ln, struct rcu_cb, list)) rcu_dereference
Section titled “rcu_dereference”#define rcu_dereference(p) atomic_load_explicit(&(p), memory_order_acquire) rcu_assign_pointer
Section titled “rcu_assign_pointer”#define rcu_assign_pointer(p, v) \
atomic_store_explicit(&(p), (v), memory_order_release)