Handle _LGPL_SOURCE config
[lttng-ust.git] / include / lttng / tracepoint.h
index 709fadc11db744101ca31656cf297b1f51b2de98..a224caebcd8485cf731648a0b6ce0e718d8d0bae 100644 (file)
@@ -15,7 +15,7 @@
  */
 
 #include <urcu-bp.h>
-#include <tracepoint-types.h>
+#include <lttng/tracepoint-types.h>
 #include <urcu/compiler.h>
 #include <dlfcn.h>     /* for dlopen */
 
@@ -37,8 +37,18 @@ extern "C" {
  * fine too).
  * Each tuple is also separated by a comma.
  */
-#define _TP_COMBINE_TOKENS1(_tokena, _tokenb)       _tokena##_tokenb
-#define _TP_COMBINE_TOKENS(_tokena, _tokenb)        _TP_COMBINE_TOKENS1(_tokena, _tokenb)
+#define __TP_COMBINE_TOKENS(_tokena, _tokenb)                          \
+               _tokena##_tokenb
+#define _TP_COMBINE_TOKENS(_tokena, _tokenb)                           \
+               __TP_COMBINE_TOKENS(_tokena, _tokenb)
+#define __TP_COMBINE_TOKENS3(_tokena, _tokenb, _tokenc)                        \
+               _tokena##_tokenb##_tokenc
+#define _TP_COMBINE_TOKENS3(_tokena, _tokenb, _tokenc)                 \
+               __TP_COMBINE_TOKENS3(_tokena, _tokenb, _tokenc)
+#define __TP_COMBINE_TOKENS4(_tokena, _tokenb, _tokenc, _tokend)       \
+               _tokena##_tokenb##_tokenc##_tokend
+#define _TP_COMBINE_TOKENS4(_tokena, _tokenb, _tokenc, _tokend)                \
+               __TP_COMBINE_TOKENS4(_tokena, _tokenb, _tokenc, _tokend)
 
 /* _TP_EXVAR* extract the var names. */
 #define _TP_EXVAR0()
@@ -103,13 +113,19 @@ extern "C" {
 #define _TP_ARGS_DATA_VAR(...)         _TP_DATA_VAR_N(_TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
 #define _TP_PARAMS(...)                        __VA_ARGS__
 
+#ifdef _LGPL_SOURCE
+#define _TP_RCU_LINK_TEST()    1
+#else
+#define _TP_RCU_LINK_TEST()    rcu_read_lock_bp
+#endif
+
 #define _DECLARE_TRACEPOINT(provider, name, ...)                                       \
 extern struct tracepoint __tracepoint_##provider##___##name;                           \
 static inline void __tracepoint_cb_##provider##___##name(_TP_ARGS_PROTO(__VA_ARGS__))  \
 {                                                                                      \
        struct tracepoint_probe *__tp_probe;                                            \
                                                                                        \
-       if (!rcu_read_lock_bp)                                                          \
+       if (!_TP_RCU_LINK_TEST())                                                       \
                return;                                                                 \
        rcu_read_lock_bp();                                                             \
        __tp_probe = rcu_dereference_bp(__tracepoint_##provider##___##name.probes);     \
This page took 0.023156 seconds and 4 git commands to generate.