#include <urcu-bp.h>
-#define TP_RCU_LINK_TEST() 1
#define tp_rcu_read_lock_bp rcu_read_lock_bp
#define tp_rcu_read_unlock_bp rcu_read_unlock_bp
#define tp_rcu_dereference_bp rcu_dereference_bp
+#define TP_RCU_LINK_TEST() 1
#else /* _LGPL_SOURCE */
-#define TP_RCU_LINK_TEST() tp_rcu_read_lock_bp
-
-/* Symbols looked up with dlsym */
-static void (*tp_rcu_read_lock_bp)(void) __attribute__((unused));
-static void (*tp_rcu_read_unlock_bp)(void) __attribute__((unused));
-static void *(*tp_rcu_dereference_sym_bp)(void *p) __attribute__((unused));
+#define tp_rcu_read_lock_bp tracepoint_dlopen.rcu_read_lock_sym_bp
+#define tp_rcu_read_unlock_bp tracepoint_dlopen.rcu_read_unlock_sym_bp
#define tp_rcu_dereference_bp(p) \
({ \
typeof(p) _________p1 = URCU_FORCE_CAST(typeof(p), \
- tp_rcu_dereference_sym_bp(URCU_FORCE_CAST(void *, p))); \
+ tracepoint_dlopen.rcu_dereference_sym_bp(URCU_FORCE_CAST(void *, p))); \
(_________p1); \
})
+#define TP_RCU_LINK_TEST() tp_rcu_read_lock_bp
+
#endif /* _LGPL_SOURCE */
#endif /* _LTTNG_TRACEPOINT_RCU_H */