Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
return uatomic_cmpxchg(p, old, _new);
}
return uatomic_cmpxchg(p, old, _new);
}
+DEFINE_RCU_FLAVOR(rcu_flavor);
#include "urcu-call-rcu-impl.h"
#include "urcu-defer-impl.h"
#include "urcu-call-rcu-impl.h"
#include "urcu-defer-impl.h"
void (*unregister_thread)(void);
};
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_quiescent_state = rcu_quiescent_state, \
.read_lock = rcu_read_lock, \
.read_unlock = rcu_read_unlock, \
.read_quiescent_state = rcu_quiescent_state, \
.thread_online = rcu_thread_online, \
.register_thread = rcu_register_thread, \
.unregister_thread = rcu_unregister_thread,\
.thread_online = rcu_thread_online, \
.register_thread = rcu_register_thread, \
.unregister_thread = rcu_unregister_thread,\
extern const struct rcu_flavor_struct rcu_flavor;
extern const struct rcu_flavor_struct rcu_flavor;
+DEFINE_RCU_FLAVOR(rcu_flavor);
#include "urcu-call-rcu-impl.h"
#include "urcu-defer-impl.h"
#include "urcu-call-rcu-impl.h"
#include "urcu-defer-impl.h"
#endif /* #ifdef RCU_SIGNAL */
#endif /* #ifdef RCU_SIGNAL */
+DEFINE_RCU_FLAVOR(rcu_flavor);
#include "urcu-call-rcu-impl.h"
#include "urcu-defer-impl.h"
#include "urcu-call-rcu-impl.h"
#include "urcu-defer-impl.h"