Fix: Don't (re)define STAP_PROBEV
[lttng-ust.git] / include / lttng / tracepoint.h
index 63759a20ee3da5f7a7e0beb6f08219c8567abe55..e88db89242750c591909fb56ae912eb6cc670ff3 100644 (file)
@@ -28,6 +28,7 @@
 #include <lttng/tracepoint-types.h>
 #include <lttng/tracepoint-rcu.h>
 #include <urcu/compiler.h>
+#include <urcu/system.h>
 #include <dlfcn.h>     /* for dlopen */
 #include <string.h>    /* for memset */
 #include <lttng/ust-config.h>  /* for sdt */
 #ifdef LTTNG_UST_HAVE_SDT_INTEGRATION
 #define SDT_USE_VARIADIC
 #include <sys/sdt.h>
+#define LTTNG_STAP_PROBEV STAP_PROBEV
 #else
-#define STAP_PROBEV(...)
+#define LTTNG_STAP_PROBEV(...)
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#define tracepoint_enabled(provider, name) \
+       caa_unlikely(CMM_LOAD_SHARED(__tracepoint_##provider##___##name.state))
+
+#define do_tracepoint(provider, name, ...) \
+       __tracepoint_cb_##provider##___##name(__VA_ARGS__)
+
 #define tracepoint(provider, name, ...)                                            \
        do {                                                                \
-               STAP_PROBEV(provider, name, ## __VA_ARGS__);                \
-               if (caa_unlikely(__tracepoint_##provider##___##name.state)) \
-                       __tracepoint_cb_##provider##___##name(__VA_ARGS__); \
+               LTTNG_STAP_PROBEV(provider, name, ## __VA_ARGS__);          \
+               if (tracepoint_enabled(provider, name))                     \
+                       do_tracepoint(provider, name, __VA_ARGS__);         \
        } while (0)
 
 #define TP_ARGS(...)       __VA_ARGS__
This page took 0.028632 seconds and 4 git commands to generate.