X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu-flavor.h;h=c04f1db78ba1e113a7ff85e9d8552cfe08b342c8;hp=e46c9a19beb73538a4274973a958e0b8546ea75e;hb=882f335739b978d1c55be2faeed077f315afe5d7;hpb=1644042068ae8de26c9f6b85dcb2a5cd0b0f7608 diff --git a/urcu-flavor.h b/urcu-flavor.h index e46c9a1..c04f1db 100644 --- a/urcu-flavor.h +++ b/urcu-flavor.h @@ -30,6 +30,7 @@ extern "C" { struct rcu_flavor_struct { void (*read_lock)(void); void (*read_unlock)(void); + int (*read_ongoing)(void); void (*read_quiescent_state)(void); void (*update_call_rcu)(struct rcu_head *head, void (*func)(struct rcu_head *head)); @@ -42,10 +43,11 @@ struct rcu_flavor_struct { void (*unregister_thread)(void); }; -#define DEFINE_RCU_FLAVOR() \ -const struct rcu_flavor_struct rcu_flavor = { \ +#define DEFINE_RCU_FLAVOR(x) \ +const struct rcu_flavor_struct x = { \ .read_lock = rcu_read_lock, \ .read_unlock = rcu_read_unlock, \ + .read_ongoing = rcu_read_ongoing, \ .read_quiescent_state = rcu_quiescent_state, \ .update_call_rcu = call_rcu, \ .update_synchronize_rcu = synchronize_rcu, \ @@ -54,7 +56,7 @@ const struct rcu_flavor_struct rcu_flavor = { \ .thread_online = rcu_thread_online, \ .register_thread = rcu_register_thread, \ .unregister_thread = rcu_unregister_thread,\ -}; +} extern const struct rcu_flavor_struct rcu_flavor;