#define LTTNG_UST__TP_EXDATA_VAR20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) __tp_data,b,d,f,h,j,l,n,p,r,t
/*
- * _TP_EXPROTO* extract tuples of type, var.
- * _TP_EXPROTO1 and LTTNG_UST__TP_EXDATA_PROTO1 are needed for -std=c99.
+ * LTTNG_UST__TP_EXPROTO* extract tuples of type, var.
+ * LTTNG_UST__TP_EXPROTO1 and LTTNG_UST__TP_EXDATA_PROTO1 are needed for -std=c99.
*/
-#define _TP_EXPROTO0() void
-#define _TP_EXPROTO1(a) void
-#define _TP_EXPROTO2(a,b) a b
-#define _TP_EXPROTO4(a,b,c,d) a b,c d
-#define _TP_EXPROTO6(a,b,c,d,e,f) a b,c d,e f
-#define _TP_EXPROTO8(a,b,c,d,e,f,g,h) a b,c d,e f,g h
-#define _TP_EXPROTO10(a,b,c,d,e,f,g,h,i,j) a b,c d,e f,g h,i j
-#define _TP_EXPROTO12(a,b,c,d,e,f,g,h,i,j,k,l) a b,c d,e f,g h,i j,k l
-#define _TP_EXPROTO14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) a b,c d,e f,g h,i j,k l,m n
-#define _TP_EXPROTO16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) a b,c d,e f,g h,i j,k l,m n,o p
-#define _TP_EXPROTO18(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) a b,c d,e f,g h,i j,k l,m n,o p,q r
-#define _TP_EXPROTO20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) a b,c d,e f,g h,i j,k l,m n,o p,q r,s t
+#define LTTNG_UST__TP_EXPROTO0() void
+#define LTTNG_UST__TP_EXPROTO1(a) void
+#define LTTNG_UST__TP_EXPROTO2(a,b) a b
+#define LTTNG_UST__TP_EXPROTO4(a,b,c,d) a b,c d
+#define LTTNG_UST__TP_EXPROTO6(a,b,c,d,e,f) a b,c d,e f
+#define LTTNG_UST__TP_EXPROTO8(a,b,c,d,e,f,g,h) a b,c d,e f,g h
+#define LTTNG_UST__TP_EXPROTO10(a,b,c,d,e,f,g,h,i,j) a b,c d,e f,g h,i j
+#define LTTNG_UST__TP_EXPROTO12(a,b,c,d,e,f,g,h,i,j,k,l) a b,c d,e f,g h,i j,k l
+#define LTTNG_UST__TP_EXPROTO14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) a b,c d,e f,g h,i j,k l,m n
+#define LTTNG_UST__TP_EXPROTO16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) a b,c d,e f,g h,i j,k l,m n,o p
+#define LTTNG_UST__TP_EXPROTO18(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) a b,c d,e f,g h,i j,k l,m n,o p,q r
+#define LTTNG_UST__TP_EXPROTO20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) a b,c d,e f,g h,i j,k l,m n,o p,q r,s t
#define LTTNG_UST__TP_EXDATA_PROTO0() void *__tp_data
#define LTTNG_UST__TP_EXDATA_PROTO1(a) void *__tp_data
#define LTTNG_UST__TP_EXDATA_PROTO20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) void *__tp_data,a b,c d,e f,g h,i j,k l,m n,o p,q r,s t
/* Preprocessor trick to count arguments. Inspired from sdt.h. */
-#define _TP_NARGS(...) __TP_NARGS(__VA_ARGS__, 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)
-#define __TP_NARGS(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20, N, ...) N
-#define _TP_PROTO_N(N, ...) _TP_PARAMS(LTTNG_UST__TP_COMBINE_TOKENS(_TP_EXPROTO, N)(__VA_ARGS__))
-#define _TP_VAR_N(N, ...) _TP_PARAMS(LTTNG_UST__TP_COMBINE_TOKENS(LTTNG_UST__TP_EXVAR, N)(__VA_ARGS__))
-#define _TP_DATA_PROTO_N(N, ...) _TP_PARAMS(LTTNG_UST__TP_COMBINE_TOKENS(LTTNG_UST__TP_EXDATA_PROTO, N)(__VA_ARGS__))
-#define _TP_DATA_VAR_N(N, ...) _TP_PARAMS(LTTNG_UST__TP_COMBINE_TOKENS(LTTNG_UST__TP_EXDATA_VAR, N)(__VA_ARGS__))
-#define _TP_ARGS_PROTO(...) _TP_PROTO_N(_TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
-#define _TP_ARGS_VAR(...) _TP_VAR_N(_TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
-#define _TP_ARGS_DATA_PROTO(...) _TP_DATA_PROTO_N(_TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
-#define _TP_ARGS_DATA_VAR(...) _TP_DATA_VAR_N(_TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
-#define _TP_PARAMS(...) __VA_ARGS__
+#define LTTNG_UST__TP_NARGS(...) LTTNG_UST___TP_NARGS(__VA_ARGS__, 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)
+#define LTTNG_UST___TP_NARGS(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20, N, ...) N
+#define LTTNG_UST__TP_PROTO_N(N, ...) LTTNG_UST__TP_PARAMS(LTTNG_UST__TP_COMBINE_TOKENS(LTTNG_UST__TP_EXPROTO, N)(__VA_ARGS__))
+#define LTTNG_UST__TP_VAR_N(N, ...) LTTNG_UST__TP_PARAMS(LTTNG_UST__TP_COMBINE_TOKENS(LTTNG_UST__TP_EXVAR, N)(__VA_ARGS__))
+#define LTTNG_UST__TP_DATA_PROTO_N(N, ...) LTTNG_UST__TP_PARAMS(LTTNG_UST__TP_COMBINE_TOKENS(LTTNG_UST__TP_EXDATA_PROTO, N)(__VA_ARGS__))
+#define LTTNG_UST__TP_DATA_VAR_N(N, ...) LTTNG_UST__TP_PARAMS(LTTNG_UST__TP_COMBINE_TOKENS(LTTNG_UST__TP_EXDATA_VAR, N)(__VA_ARGS__))
+#define LTTNG_UST__TP_ARGS_PROTO(...) LTTNG_UST__TP_PROTO_N(LTTNG_UST__TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
+#define LTTNG_UST__TP_ARGS_VAR(...) LTTNG_UST__TP_VAR_N(LTTNG_UST__TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
+#define LTTNG_UST__TP_ARGS_DATA_PROTO(...) LTTNG_UST__TP_DATA_PROTO_N(LTTNG_UST__TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
+#define LTTNG_UST__TP_ARGS_DATA_VAR(...) LTTNG_UST__TP_DATA_VAR_N(LTTNG_UST__TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__)
+#define LTTNG_UST__TP_PARAMS(...) __VA_ARGS__
/*
* sizeof(#_provider) - 1 : length of the provider string (excluding \0).
#define LTTNG_UST__DECLARE_TRACEPOINT(_provider, _name, ...) \
extern struct lttng_ust_tracepoint lttng_ust_tracepoint_##_provider##___##_name; \
static inline \
-void lttng_ust_tracepoint_cb_##_provider##___##_name(_TP_ARGS_PROTO(__VA_ARGS__)) \
+void lttng_ust_tracepoint_cb_##_provider##___##_name(LTTNG_UST__TP_ARGS_PROTO(__VA_ARGS__)) \
__attribute__((always_inline, unused)) lttng_ust_notrace; \
static \
-void lttng_ust_tracepoint_cb_##_provider##___##_name(_TP_ARGS_PROTO(__VA_ARGS__)) \
+void lttng_ust_tracepoint_cb_##_provider##___##_name(LTTNG_UST__TP_ARGS_PROTO(__VA_ARGS__)) \
{ \
struct lttng_ust_tracepoint_probe *__tp_probe; \
\
void (*__tp_cb)(void) = __tp_probe->func; \
void *__tp_data = __tp_probe->data; \
\
- URCU_FORCE_CAST(void (*)(_TP_ARGS_DATA_PROTO(__VA_ARGS__)), __tp_cb) \
- (_TP_ARGS_DATA_VAR(__VA_ARGS__)); \
+ URCU_FORCE_CAST(void (*)(LTTNG_UST__TP_ARGS_DATA_PROTO(__VA_ARGS__)), __tp_cb) \
+ (LTTNG_UST__TP_ARGS_DATA_VAR(__VA_ARGS__)); \
} while ((++__tp_probe)->func); \
end: \
tp_rcu_read_unlock(); \
void *liblttngust_handle;
- int (*tracepoint_register_lib)(struct lttng_ust_tracepoint * const *tracepoints_start,
+ int (*lttng_ust_tracepoint_register_lib)(struct lttng_ust_tracepoint * const *tracepoints_start,
int tracepoints_count);
- int (*tracepoint_unregister_lib)(struct lttng_ust_tracepoint * const *tracepoints_start);
+ int (*lttng_ust_tracepoint_unregister_lib)(struct lttng_ust_tracepoint * const *tracepoints_start);
void (*rcu_read_lock_sym)(void);
void (*rcu_read_unlock_sym)(void);
void *(*rcu_dereference_sym)(void *p);
#endif
static void
-__tracepoints__init(void)
+lttng_ust__tracepoints__init(void)
lttng_ust_notrace __attribute__((constructor));
static void
-__tracepoints__init(void)
+lttng_ust__tracepoints__init(void)
{
if (lttng_ust_tracepoint_registered++) {
if (!lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle)
}
static void
-__tracepoints__destroy(void)
+lttng_ust__tracepoints__destroy(void)
lttng_ust_notrace __attribute__((destructor));
static void
-__tracepoints__destroy(void)
+lttng_ust__tracepoints__destroy(void)
{
int ret;
* registering only _one_ instance of the tracepoints per shared-ojbect
* (or for the whole main program).
*/
-extern struct lttng_ust_tracepoint * const __start___tracepoints_ptrs[]
+extern struct lttng_ust_tracepoint * const __start_lttng_ust_tracepoints_ptrs[]
__attribute__((weak, visibility("hidden")));
-extern struct lttng_ust_tracepoint * const __stop___tracepoints_ptrs[]
+extern struct lttng_ust_tracepoint * const __stop_lttng_ust_tracepoints_ptrs[]
__attribute__((weak, visibility("hidden")));
/*
- * When TRACEPOINT_PROBE_DYNAMIC_LINKAGE is defined, we do not emit a
+ * When LTTNG_UST_TRACEPOINT_PROBE_DYNAMIC_LINKAGE is defined, we do not emit a
* unresolved symbol that requires the provider to be linked in. When
- * TRACEPOINT_PROBE_DYNAMIC_LINKAGE is not defined, we emit an
+ * LTTNG_UST_TRACEPOINT_PROBE_DYNAMIC_LINKAGE is not defined, we emit an
* unresolved symbol that depends on having the provider linked in,
* otherwise the linker complains. This deals with use of static
* libraries, ensuring that the linker does not remove the provider
* object from the executable.
*/
-#ifdef TRACEPOINT_PROBE_DYNAMIC_LINKAGE
-#define _TRACEPOINT_UNDEFINED_REF(provider) NULL
-#else /* TRACEPOINT_PROBE_DYNAMIC_LINKAGE */
-#define _TRACEPOINT_UNDEFINED_REF(provider) <tng_ust_tracepoint_provider_##provider
-#endif /* TRACEPOINT_PROBE_DYNAMIC_LINKAGE */
+
+#if LTTNG_UST_COMPAT_API(0)
+# if defined(TRACEPOINT_PROBE_DYNAMIC_LINKAGE) && !defined(LTTNG_UST_TRACEPOINT_PROBE_DYNAMIC_LINKAGE)
+# define LTTNG_UST_TRACEPOINT_PROBE_DYNAMIC_LINKAGE
+# endif
+#endif /* #if LTTNG_UST_COMPAT_API(0) */
+
+#ifdef LTTNG_UST_TRACEPOINT_PROBE_DYNAMIC_LINKAGE
+#define LTTNG_UST__TRACEPOINT_UNDEFINED_REF(provider) NULL
+#else /* LTTNG_UST_TRACEPOINT_PROBE_DYNAMIC_LINKAGE */
+#define LTTNG_UST__TRACEPOINT_UNDEFINED_REF(provider) <tng_ust_tracepoint_provider_##provider
+#endif /* LTTNG_UST_TRACEPOINT_PROBE_DYNAMIC_LINKAGE */
/*
* Note: to allow PIC code, we need to allow the linker to update the pointers
- * in the __tracepoints_ptrs section.
+ * in the lttng_ust_tracepoints_ptrs section.
* Therefore, this section is _not_ const (read-only).
*/
-#define _TP_EXTRACT_STRING(...) #__VA_ARGS__
+#define LTTNG_UST__TP_EXTRACT_STRING(...) #__VA_ARGS__
#define LTTNG_UST__DEFINE_TRACEPOINT(_provider, _name, _args) \
lttng_ust_tracepoint_validate_name_len(_provider, _name); \
extern int lttng_ust_tracepoint_provider_##_provider; \
- static const char __tp_provider_strtab_##_provider##___##_name[] \
- __attribute__((section("__tracepoints_strings"))) = \
+ static const char lttng_ust_tp_provider_strtab_##_provider##___##_name[] \
+ __attribute__((section("lttng_ust_tracepoints_strings"))) = \
#_provider; \
- static const char __tp_name_strtab_##_provider##___##_name[] \
- __attribute__((section("__tracepoints_strings"))) = \
+ static const char lttng_ust_tp_name_strtab_##_provider##___##_name[] \
+ __attribute__((section("lttng_ust_tracepoints_strings"))) = \
#_name; \
struct lttng_ust_tracepoint lttng_ust_tracepoint_##_provider##___##_name \
- __attribute__((section("__tracepoints"))) = { \
+ __attribute__((section("lttng_ust_tracepoints"))) = { \
sizeof(struct lttng_ust_tracepoint), \
- __tp_provider_strtab_##_provider##___##_name, \
- __tp_name_strtab_##_provider##___##_name, \
+ lttng_ust_tp_provider_strtab_##_provider##___##_name, \
+ lttng_ust_tp_name_strtab_##_provider##___##_name, \
0, \
NULL, \
- _TRACEPOINT_UNDEFINED_REF(_provider), \
- _TP_EXTRACT_STRING(_args), \
+ LTTNG_UST__TRACEPOINT_UNDEFINED_REF(_provider), \
+ LTTNG_UST__TP_EXTRACT_STRING(_args), \
}; \
static struct lttng_ust_tracepoint * \
lttng_ust_tracepoint_ptr_##_provider##___##_name \
- __attribute__((section("__tracepoints_ptrs"), used)) \
+ __attribute__((section("lttng_ust_tracepoints_ptrs"), used)) \
__lttng_ust_variable_attribute_no_sanitize_address = \
<tng_ust_tracepoint_##_provider##___##_name;
static void
-__tracepoints__ptrs_init(void)
+lttng_ust__tracepoints__ptrs_init(void)
lttng_ust_notrace __attribute__((constructor));
static void
-__tracepoints__ptrs_init(void)
+lttng_ust__tracepoints__ptrs_init(void)
{
if (lttng_ust_tracepoint_ptrs_registered++)
return;
return;
if (!lttng_ust_tracepoint_destructors_syms_ptr)
lttng_ust_tracepoint_destructors_syms_ptr = <tng_ust_tracepoint_destructors_syms;
- lttng_ust_tracepoint_dlopen_ptr->tracepoint_register_lib =
+ lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_register_lib =
URCU_FORCE_CAST(int (*)(struct lttng_ust_tracepoint * const *, int),
dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
- "tracepoint_register_lib"));
- lttng_ust_tracepoint_dlopen_ptr->tracepoint_unregister_lib =
+ "lttng_ust_tracepoint_register_lib"));
+ lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_unregister_lib =
URCU_FORCE_CAST(int (*)(struct lttng_ust_tracepoint * const *),
dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
- "tracepoint_unregister_lib"));
+ "lttng_ust_tracepoint_unregister_lib"));
lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_disable_destructors =
URCU_FORCE_CAST(void (*)(void),
dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
- "tp_disable_destructors"));
+ "lttng_ust_tp_disable_destructors"));
lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state =
URCU_FORCE_CAST(int (*)(void),
dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
- "tp_get_destructors_state"));
+ "lttng_ust_tp_get_destructors_state"));
lttng_ust_tracepoint__init_urcu_sym();
- if (lttng_ust_tracepoint_dlopen_ptr->tracepoint_register_lib) {
- lttng_ust_tracepoint_dlopen_ptr->tracepoint_register_lib(__start___tracepoints_ptrs,
- __stop___tracepoints_ptrs -
- __start___tracepoints_ptrs);
+ if (lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_register_lib) {
+ lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_register_lib(__start_lttng_ust_tracepoints_ptrs,
+ __stop_lttng_ust_tracepoints_ptrs -
+ __start_lttng_ust_tracepoints_ptrs);
}
}
static void
-__tracepoints__ptrs_destroy(void)
+lttng_ust__tracepoints__ptrs_destroy(void)
lttng_ust_notrace __attribute__((destructor));
static void
-__tracepoints__ptrs_destroy(void)
+lttng_ust__tracepoints__ptrs_destroy(void)
{
int ret;
lttng_ust_tracepoint_dlopen_ptr = <tng_ust_tracepoint_dlopen;
if (!lttng_ust_tracepoint_destructors_syms_ptr)
lttng_ust_tracepoint_destructors_syms_ptr = <tng_ust_tracepoint_destructors_syms;
- if (lttng_ust_tracepoint_dlopen_ptr->tracepoint_unregister_lib)
- lttng_ust_tracepoint_dlopen_ptr->tracepoint_unregister_lib(__start___tracepoints_ptrs);
+ if (lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_unregister_lib)
+ lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_unregister_lib(__start_lttng_ust_tracepoints_ptrs);
if (lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle
&& lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state
&& lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state()
*/
#define LTTNG_UST_TRACEPOINT_EVENT(provider, name, args, fields) \
- LTTNG_UST__DECLARE_TRACEPOINT(provider, name, _TP_PARAMS(args)) \
- LTTNG_UST__DEFINE_TRACEPOINT(provider, name, _TP_PARAMS(args))
+ LTTNG_UST__DECLARE_TRACEPOINT(provider, name, LTTNG_UST__TP_PARAMS(args)) \
+ LTTNG_UST__DEFINE_TRACEPOINT(provider, name, LTTNG_UST__TP_PARAMS(args))
#define LTTNG_UST_TRACEPOINT_EVENT_CLASS(provider, name, args, fields)
#define LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(provider, _template, name, args) \
- LTTNG_UST__DECLARE_TRACEPOINT(provider, name, _TP_PARAMS(args)) \
- LTTNG_UST__DEFINE_TRACEPOINT(provider, name, _TP_PARAMS(args))
+ LTTNG_UST__DECLARE_TRACEPOINT(provider, name, LTTNG_UST__TP_PARAMS(args)) \
+ LTTNG_UST__DEFINE_TRACEPOINT(provider, name, LTTNG_UST__TP_PARAMS(args))
#if LTTNG_UST_COMPAT_API(0)
#define TRACEPOINT_EVENT LTTNG_UST_TRACEPOINT_EVENT