X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=urcu-call-rcu.h;h=d00bb4ae6d8c111cdfa68987bc8b59e5622174d8;hb=24953e081b6cb2e0f4ce1de1c42664ece3c3ce1b;hp=e76a844018f2e24a129ab1e3db957ec90f6cdf40;hpb=c1d2c60b1c754815d27f29705d5f2077c0900148;p=urcu.git diff --git a/urcu-call-rcu.h b/urcu-call-rcu.h index e76a844..d00bb4a 100644 --- a/urcu-call-rcu.h +++ b/urcu-call-rcu.h @@ -62,16 +62,29 @@ struct rcu_head { /* * Exported functions */ + +/* + * get_cpu_call_rcu_data should be called with RCU read-side lock held. + * Callers should be registered RCU read-side threads. + */ 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, 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); +/* + * get_call_rcu_data should be called from registered RCU read-side + * threads. For the QSBR flavor, the caller should be online. + */ struct call_rcu_data *get_call_rcu_data(void); struct call_rcu_data *get_thread_call_rcu_data(void); void set_thread_call_rcu_data(struct call_rcu_data *crdp); int create_all_cpu_call_rcu_data(unsigned long flags); +/* + * call_rcu should be called from registered RCU read-side threads. + * For the QSBR flavor, the caller should be online. + */ void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *head)); void call_rcu_data_free(struct call_rcu_data *crdp);