Make defer_rcu() usable from library using multiple URCU implementations
[urcu.git] / urcu-map.h
index eccaac2b17b620ac2d2c43b2c5e801c01e7e961e..b55e304afe60af9933992b3e6be11a3ba96ac7c2 100644 (file)
 
 /* Mapping macros to allow multiple flavors in a single binary. */
 
 
 /* Mapping macros to allow multiple flavors in a single binary. */
 
+#if !defined(RCU_MEMBARRIER) && !defined(RCU_SIGNAL) && !defined(RCU_MB)
+#define RCU_MB
+#endif
+
 #ifdef RCU_MEMBARRIER
 
 #define rcu_read_lock                  rcu_read_lock_memb
 #ifdef RCU_MEMBARRIER
 
 #define rcu_read_lock                  rcu_read_lock_memb
 #define free_all_cpu_call_rcu_data     free_all_cpu_call_rcu_data_memb
 #define call_rcu                       call_rcu_memb
 
 #define free_all_cpu_call_rcu_data     free_all_cpu_call_rcu_data_memb
 #define call_rcu                       call_rcu_memb
 
+#define defer_rcu                      defer_rcu_memb
+#define rcu_defer_register_thread      rcu_defer_register_thread_memb
+#define rcu_defer_unregister_thread    rcu_defer_unregister_thread_memb
+#define rcu_defer_barrier              rcu_defer_barrier_memb
+#define rcu_defer_barrier_thread       rcu_defer_barrier_thread_memb
+
 #elif defined(RCU_SIGNAL)
 
 #define rcu_read_lock                  rcu_read_lock_sig
 #elif defined(RCU_SIGNAL)
 
 #define rcu_read_lock                  rcu_read_lock_sig
 #define free_all_cpu_call_rcu_data     free_all_cpu_call_rcu_data_sig
 #define call_rcu                       call_rcu_sig
 
 #define free_all_cpu_call_rcu_data     free_all_cpu_call_rcu_data_sig
 #define call_rcu                       call_rcu_sig
 
+#define defer_rcu                      defer_rcu_sig
+#define rcu_defer_register_thread      rcu_defer_register_thread_sig
+#define rcu_defer_unregister_thread    rcu_defer_unregister_thread_sig
+#define rcu_defer_barrier              rcu_defer_barrier_sig
+#define rcu_defer_barrier_thread       rcu_defer_barrier_thread_sig
+
 #elif defined(RCU_MB)
 
 #define rcu_read_lock                  rcu_read_lock_mb
 #elif defined(RCU_MB)
 
 #define rcu_read_lock                  rcu_read_lock_mb
 #define free_all_cpu_call_rcu_data     free_all_cpu_call_rcu_data_mb
 #define call_rcu                       call_rcu_mb
 
 #define free_all_cpu_call_rcu_data     free_all_cpu_call_rcu_data_mb
 #define call_rcu                       call_rcu_mb
 
+#define defer_rcu                      defer_rcu_mb
+#define rcu_defer_register_thread      rcu_defer_register_thread_mb
+#define rcu_defer_unregister_thread    rcu_defer_unregister_thread_mb
+#define rcu_defer_barrier              rcu_defer_barrier_mb
+#define rcu_defer_barrier_thread       rcu_defer_barrier_thread_mb
+
+#else
+
+#error "Undefined selection"
+
 #endif
 
 #endif /* _URCU_MAP_H */
 #endif
 
 #endif /* _URCU_MAP_H */
This page took 0.023875 seconds and 4 git commands to generate.