#define URCU_CALL_RCU_RT 0x1
#define URCU_CALL_RCU_RUNNING 0x2
+#define URCU_CALL_RCU_STOP 0x4
+#define URCU_CALL_RCU_STOPPED 0x8
/*
* The rcu_head data structure is placed in the structure to be freed
*/
struct call_rcu_data *get_cpu_call_rcu_data(int cpu);
pthread_t get_call_rcu_thread(struct call_rcu_data *crdp);
-struct call_rcu_data *create_call_rcu_data(unsigned long flags);
+struct call_rcu_data *create_call_rcu_data(unsigned long flags,
+ int cpu_affinity);
int set_cpu_call_rcu_data(int cpu, struct call_rcu_data *crdp);
struct call_rcu_data *get_default_call_rcu_data(void);
struct call_rcu_data *get_call_rcu_data(void);
int create_all_cpu_call_rcu_data(unsigned long flags);
void call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *head));
+void call_rcu_data_free(struct call_rcu_data *crdp);
+void free_all_cpu_call_rcu_data(void);
+void call_rcu_after_fork_child(void);
#ifdef __cplusplus
}