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()