X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Ftracepoint.h;h=4bc4fc9e4446db05feeecbe1a5d9d09e9df87ab9;hb=f968510a0810a8f1a03e181060b2fa282058d9ae;hp=63759a20ee3da5f7a7e0beb6f08219c8567abe55;hpb=1a20609484df56e378318d65f07f39dcd8ec1db2;p=lttng-ust.git diff --git a/include/lttng/tracepoint.h b/include/lttng/tracepoint.h index 63759a20..4bc4fc9e 100644 --- a/include/lttng/tracepoint.h +++ b/include/lttng/tracepoint.h @@ -28,6 +28,7 @@ #include #include #include +#include #include /* for dlopen */ #include /* for memset */ #include /* for sdt */ @@ -44,11 +45,17 @@ 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__); \ + if (tracepoint_enabled(provider, name)) \ + do_tracepoint(provider, name, __VA_ARGS__); \ } while (0) #define TP_ARGS(...) __VA_ARGS__