+
+ liblttngust_handle = dlopen("liblttng-ust-tracepoint.so.0", RTLD_NOW | RTLD_GLOBAL);
+ if (!liblttngust_handle)
+ return;
+ tracepoint_register_lib =
+ URCU_FORCE_CAST(int (*)(struct tracepoint * const *, int),
+ dlsym(liblttngust_handle,
+ "tracepoint_register_lib"));
+ tracepoint_unregister_lib =
+ URCU_FORCE_CAST(int (*)(struct tracepoint * const *),
+ dlsym(liblttngust_handle,
+ "tracepoint_unregister_lib"));
+#ifndef _LGPL_SOURCE
+ tp_rcu_read_lock_bp =
+ URCU_FORCE_CAST(void (*)(void),
+ dlsym(liblttngust_handle,
+ "tp_rcu_read_lock_bp"));
+ tp_rcu_read_unlock_bp =
+ URCU_FORCE_CAST(void (*)(void),
+ dlsym(liblttngust_handle,
+ "tp_rcu_read_unlock_bp"));
+ tp_rcu_dereference_sym_bp =
+ URCU_FORCE_CAST(void *(*)(void *p),
+ dlsym(liblttngust_handle,
+ "tp_rcu_dereference_sym_bp"));
+#endif