Tracepoint API namespacing 'LTTNG_UST_SDT'
[lttng-ust.git] / include / lttng / tracepoint.h
index 0f6b34ee39f400712f796d4099a99687164c05c4..199c8d43c1ddfb004958f61042f2a2a562c1b0b7 100644 (file)
  */
 #include <sys/sdt.h>
 
-#define _LTTNG_UST_SDT_NARG(...) \
-       __LTTNG_UST_SDT_NARG(__VA_ARGS__, 12,11,10,9,8,7,6,5,4,3,2,1,0)
+#define LTTNG_UST__SDT_NARG(...) \
+       LTTNG_UST___SDT_NARG(__VA_ARGS__, 12,11,10,9,8,7,6,5,4,3,2,1,0)
 
-#define __LTTNG_UST_SDT_NARG(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12, N, ...) N
+#define LTTNG_UST___SDT_NARG(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12, N, ...) N
 
-#define _LTTNG_UST_SDT_PROBE_N(provider, name, N, ...) \
+#define LTTNG_UST__SDT_PROBE_N(provider, name, N, ...) \
        _SDT_PROBE(provider, name, N, (__VA_ARGS__))
 
 #define LTTNG_UST_STAP_PROBEV(provider, name, ...) \
-       _LTTNG_UST_SDT_PROBE_N(provider, name, _LTTNG_UST_SDT_NARG(0, ##__VA_ARGS__), ##__VA_ARGS__)
+       LTTNG_UST__SDT_PROBE_N(provider, name, LTTNG_UST__SDT_NARG(0, ##__VA_ARGS__), ##__VA_ARGS__)
 
 #else
 #define LTTNG_UST_STAP_PROBEV(...)
@@ -51,10 +51,10 @@ extern "C" {
 #endif
 
 #define lttng_ust_tracepoint_enabled(provider, name)                           \
-       caa_unlikely(CMM_LOAD_SHARED(__tracepoint_##provider##___##name.state))
+       caa_unlikely(CMM_LOAD_SHARED(lttng_ust_tracepoint_##provider##___##name.state))
 
 #define lttng_ust_do_tracepoint(provider, name, ...)                           \
-       __tracepoint_cb_##provider##___##name(__VA_ARGS__)
+       lttng_ust_tracepoint_cb_##provider##___##name(__VA_ARGS__)
 
 #define lttng_ust_tracepoint(provider, name, ...)                              \
        do {                                                                    \
@@ -182,19 +182,19 @@ extern "C" {
  * address.
  */
 #define LTTNG_UST__DECLARE_TRACEPOINT(_provider, _name, ...)                                   \
-extern struct lttng_ust_tracepoint __tracepoint_##_provider##___##_name;               \
+extern struct lttng_ust_tracepoint lttng_ust_tracepoint_##_provider##___##_name;               \
 static inline                                                                          \
-void __tracepoint_cb_##_provider##___##_name(_TP_ARGS_PROTO(__VA_ARGS__))              \
+void lttng_ust_tracepoint_cb_##_provider##___##_name(_TP_ARGS_PROTO(__VA_ARGS__))              \
        __attribute__((always_inline, unused)) lttng_ust_notrace;                       \
 static                                                                                 \
-void __tracepoint_cb_##_provider##___##_name(_TP_ARGS_PROTO(__VA_ARGS__))              \
+void lttng_ust_tracepoint_cb_##_provider##___##_name(_TP_ARGS_PROTO(__VA_ARGS__))              \
 {                                                                                      \
        struct lttng_ust_tracepoint_probe *__tp_probe;                                  \
                                                                                        \
        if (caa_unlikely(!TP_RCU_LINK_TEST()))                                          \
                return;                                                                 \
        tp_rcu_read_lock();                                                             \
-       __tp_probe = tp_rcu_dereference(__tracepoint_##_provider##___##_name.probes);   \
+       __tp_probe = tp_rcu_dereference(lttng_ust_tracepoint_##_provider##___##_name.probes);   \
        if (caa_unlikely(!__tp_probe))                                                  \
                goto end;                                                               \
        do {                                                                            \
@@ -208,30 +208,30 @@ end:                                                                                      \
        tp_rcu_read_unlock();                                                           \
 }                                                                                      \
 static inline                                                                          \
-void __tracepoint_register_##_provider##___##_name(char *provider_name, char *event_name, \
+void lttng_ust_tracepoint_register_##_provider##___##_name(char *provider_name, char *event_name, \
                void (*func)(void), void *data)                                         \
        lttng_ust_notrace;                                                              \
 static inline                                                                          \
-void __tracepoint_register_##_provider##___##_name(char *provider_name, char *event_name, \
+void lttng_ust_tracepoint_register_##_provider##___##_name(char *provider_name, char *event_name, \
                void (*func)(void), void *data)                                         \
 {                                                                                      \
-       __tracepoint_probe_register(provider_name, event_name, func, data,              \
-               __tracepoint_##_provider##___##_name.signature);                        \
+       lttng_ust_tracepoint_probe_register(provider_name, event_name, func, data,              \
+               lttng_ust_tracepoint_##_provider##___##_name.signature);                        \
 }                                                                                      \
 static inline                                                                          \
-void __tracepoint_unregister_##_provider##___##_name(char *provider_name, char *event_name, \
+void lttng_ust_tracepoint_unregister_##_provider##___##_name(char *provider_name, char *event_name, \
                void (*func)(void), void *data)                                         \
        lttng_ust_notrace;                                                              \
 static inline                                                                          \
-void __tracepoint_unregister_##_provider##___##_name(char *provider_name, char *event_name, \
+void lttng_ust_tracepoint_unregister_##_provider##___##_name(char *provider_name, char *event_name, \
                void (*func)(void), void *data)                                         \
 {                                                                                      \
-       __tracepoint_probe_unregister(provider_name, event_name, func, data);           \
+       lttng_ust_tracepoint_probe_unregister(provider_name, event_name, func, data);           \
 }
 
-extern int __tracepoint_probe_register(const char *provider_name, const char *event_name,
+extern int lttng_ust_tracepoint_probe_register(const char *provider_name, const char *event_name,
                void (*func)(void), void *data, const char *signature);
-extern int __tracepoint_probe_unregister(const char *provider_name, const char *event_name,
+extern int lttng_ust_tracepoint_probe_unregister(const char *provider_name, const char *event_name,
                void (*func)(void), void *data);
 
 /*
@@ -261,19 +261,19 @@ struct lttng_ust_tracepoint_dlopen {
        /* End of base ABI. Fields below should be used after checking struct_size. */
 };
 
-extern struct lttng_ust_tracepoint_dlopen tracepoint_dlopen;
-extern struct lttng_ust_tracepoint_dlopen *tracepoint_dlopen_ptr;
+extern struct lttng_ust_tracepoint_dlopen lttng_ust_tracepoint_dlopen;
+extern struct lttng_ust_tracepoint_dlopen *lttng_ust_tracepoint_dlopen_ptr;
 
 /*
  * These weak symbols, the constructor, and destructor take care of
  * registering only _one_ instance of the tracepoints per shared-ojbect
  * (or for the whole main program).
  */
-int __tracepoint_registered
+int lttng_ust_tracepoint_registered
        __attribute__((weak, visibility("hidden")));
-int __tracepoint_ptrs_registered
+int lttng_ust_tracepoint_ptrs_registered
        __attribute__((weak, visibility("hidden")));
-struct lttng_ust_tracepoint_dlopen tracepoint_dlopen
+struct lttng_ust_tracepoint_dlopen lttng_ust_tracepoint_dlopen
                __attribute__((weak, visibility("hidden"))) = {
        .struct_size = sizeof(struct lttng_ust_tracepoint_dlopen),
 };
@@ -287,7 +287,7 @@ struct lttng_ust_tracepoint_dlopen tracepoint_dlopen
  * scoping match that of the other weak hidden symbols found in this
  * header.
  */
-struct lttng_ust_tracepoint_dlopen *tracepoint_dlopen_ptr
+struct lttng_ust_tracepoint_dlopen *lttng_ust_tracepoint_dlopen_ptr
        __attribute__((weak, visibility("hidden")));
 
 /*
@@ -312,62 +312,62 @@ struct lttng_ust_tracepoint_destructors_syms {
        /* End of base ABI. Fields below should be used after checking struct_size. */
 };
 
-extern struct lttng_ust_tracepoint_destructors_syms tracepoint_destructors_syms;
-extern struct lttng_ust_tracepoint_destructors_syms *tracepoint_destructors_syms_ptr;
+extern struct lttng_ust_tracepoint_destructors_syms lttng_ust_tracepoint_destructors_syms;
+extern struct lttng_ust_tracepoint_destructors_syms *lttng_ust_tracepoint_destructors_syms_ptr;
 
-struct lttng_ust_tracepoint_destructors_syms tracepoint_destructors_syms
+struct lttng_ust_tracepoint_destructors_syms lttng_ust_tracepoint_destructors_syms
        __attribute__((weak, visibility("hidden"))) = {
        .struct_size = sizeof(struct lttng_ust_tracepoint_destructors_syms),
 };
-struct lttng_ust_tracepoint_destructors_syms *tracepoint_destructors_syms_ptr
+struct lttng_ust_tracepoint_destructors_syms *lttng_ust_tracepoint_destructors_syms_ptr
        __attribute__((weak, visibility("hidden")));
 
 static inline void tracepoint_disable_destructors(void)
 {
-       if (!tracepoint_dlopen_ptr)
-               tracepoint_dlopen_ptr = &tracepoint_dlopen;
-       if (!tracepoint_destructors_syms_ptr)
-               tracepoint_destructors_syms_ptr = &tracepoint_destructors_syms;
-       if (tracepoint_dlopen_ptr->liblttngust_handle
-                       && tracepoint_destructors_syms_ptr->tracepoint_disable_destructors)
-               tracepoint_destructors_syms_ptr->tracepoint_disable_destructors();
+       if (!lttng_ust_tracepoint_dlopen_ptr)
+               lttng_ust_tracepoint_dlopen_ptr = &lttng_ust_tracepoint_dlopen;
+       if (!lttng_ust_tracepoint_destructors_syms_ptr)
+               lttng_ust_tracepoint_destructors_syms_ptr = &lttng_ust_tracepoint_destructors_syms;
+       if (lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle
+                       && lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_disable_destructors)
+               lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_disable_destructors();
 }
 
 #ifndef _LGPL_SOURCE
 static inline void
-__tracepoint__init_urcu_sym(void)
+lttng_ust_tracepoint__init_urcu_sym(void)
        lttng_ust_notrace;
 static inline void
-__tracepoint__init_urcu_sym(void)
+lttng_ust_tracepoint__init_urcu_sym(void)
 {
-       if (!tracepoint_dlopen_ptr)
-               tracepoint_dlopen_ptr = &tracepoint_dlopen;
+       if (!lttng_ust_tracepoint_dlopen_ptr)
+               lttng_ust_tracepoint_dlopen_ptr = &lttng_ust_tracepoint_dlopen;
        /*
         * Symbols below are needed by tracepoint call sites and probe
         * providers.
         */
-       if (!tracepoint_dlopen_ptr->rcu_read_lock_sym)
-               tracepoint_dlopen_ptr->rcu_read_lock_sym =
+       if (!lttng_ust_tracepoint_dlopen_ptr->rcu_read_lock_sym)
+               lttng_ust_tracepoint_dlopen_ptr->rcu_read_lock_sym =
                        URCU_FORCE_CAST(void (*)(void),
-                               dlsym(tracepoint_dlopen_ptr->liblttngust_handle,
+                               dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
                                        "tp_rcu_read_lock"));
-       if (!tracepoint_dlopen_ptr->rcu_read_unlock_sym)
-               tracepoint_dlopen_ptr->rcu_read_unlock_sym =
+       if (!lttng_ust_tracepoint_dlopen_ptr->rcu_read_unlock_sym)
+               lttng_ust_tracepoint_dlopen_ptr->rcu_read_unlock_sym =
                        URCU_FORCE_CAST(void (*)(void),
-                               dlsym(tracepoint_dlopen_ptr->liblttngust_handle,
+                               dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
                                        "tp_rcu_read_unlock"));
-       if (!tracepoint_dlopen_ptr->rcu_dereference_sym)
-               tracepoint_dlopen_ptr->rcu_dereference_sym =
+       if (!lttng_ust_tracepoint_dlopen_ptr->rcu_dereference_sym)
+               lttng_ust_tracepoint_dlopen_ptr->rcu_dereference_sym =
                        URCU_FORCE_CAST(void *(*)(void *p),
-                               dlsym(tracepoint_dlopen_ptr->liblttngust_handle,
+                               dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
                                        "tp_rcu_dereference_sym"));
 }
 #else
 static inline void
-__tracepoint__init_urcu_sym(void)
+lttng_ust_tracepoint__init_urcu_sym(void)
        lttng_ust_notrace;
 static inline void
-__tracepoint__init_urcu_sym(void)
+lttng_ust_tracepoint__init_urcu_sym(void)
 {
 }
 #endif
@@ -378,21 +378,21 @@ __tracepoints__init(void)
 static void
 __tracepoints__init(void)
 {
-       if (__tracepoint_registered++) {
-               if (!tracepoint_dlopen_ptr->liblttngust_handle)
+       if (lttng_ust_tracepoint_registered++) {
+               if (!lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle)
                        return;
-               __tracepoint__init_urcu_sym();
+               lttng_ust_tracepoint__init_urcu_sym();
                return;
        }
 
-       if (!tracepoint_dlopen_ptr)
-               tracepoint_dlopen_ptr = &tracepoint_dlopen;
-       if (!tracepoint_dlopen_ptr->liblttngust_handle)
-               tracepoint_dlopen_ptr->liblttngust_handle =
+       if (!lttng_ust_tracepoint_dlopen_ptr)
+               lttng_ust_tracepoint_dlopen_ptr = &lttng_ust_tracepoint_dlopen;
+       if (!lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle)
+               lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle =
                        dlopen(LTTNG_UST_TRACEPOINT_LIB_SONAME, RTLD_NOW | RTLD_GLOBAL);
-       if (!tracepoint_dlopen_ptr->liblttngust_handle)
+       if (!lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle)
                return;
-       __tracepoint__init_urcu_sym();
+       lttng_ust_tracepoint__init_urcu_sym();
 }
 
 static void
@@ -403,21 +403,21 @@ __tracepoints__destroy(void)
 {
        int ret;
 
-       if (--__tracepoint_registered)
+       if (--lttng_ust_tracepoint_registered)
                return;
-       if (!tracepoint_dlopen_ptr)
-               tracepoint_dlopen_ptr = &tracepoint_dlopen;
-       if (!tracepoint_destructors_syms_ptr)
-               tracepoint_destructors_syms_ptr = &tracepoint_destructors_syms;
-       if (!tracepoint_dlopen_ptr->liblttngust_handle)
+       if (!lttng_ust_tracepoint_dlopen_ptr)
+               lttng_ust_tracepoint_dlopen_ptr = &lttng_ust_tracepoint_dlopen;
+       if (!lttng_ust_tracepoint_destructors_syms_ptr)
+               lttng_ust_tracepoint_destructors_syms_ptr = &lttng_ust_tracepoint_destructors_syms;
+       if (!lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle)
                return;
-       if (__tracepoint_ptrs_registered)
+       if (lttng_ust_tracepoint_ptrs_registered)
                return;
        /*
         * Lookup if destructors must be executed using the new method.
         */
-       if (tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state
-               && !tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state()) {
+       if (lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state
+               && !lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state()) {
                /*
                 * The tracepoint_get_destructors_state symbol was found with
                 * dlsym but its returned value is 0 meaning that destructors
@@ -425,12 +425,12 @@ __tracepoints__destroy(void)
                 */
                return;
        }
-       ret = dlclose(tracepoint_dlopen_ptr->liblttngust_handle);
+       ret = dlclose(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle);
        if (ret) {
                fprintf(stderr, "Error (%d) in dlclose\n", ret);
                abort();
        }
-       memset(tracepoint_dlopen_ptr, 0, sizeof(*tracepoint_dlopen_ptr));
+       memset(lttng_ust_tracepoint_dlopen_ptr, 0, sizeof(*lttng_ust_tracepoint_dlopen_ptr));
 }
 
 #ifdef TRACEPOINT_DEFINE
@@ -457,7 +457,7 @@ extern struct lttng_ust_tracepoint * const __stop___tracepoints_ptrs[]
 #ifdef TRACEPOINT_PROBE_DYNAMIC_LINKAGE
 #define _TRACEPOINT_UNDEFINED_REF(provider)    NULL
 #else  /* TRACEPOINT_PROBE_DYNAMIC_LINKAGE */
-#define _TRACEPOINT_UNDEFINED_REF(provider)    &__tracepoint_provider_##provider
+#define _TRACEPOINT_UNDEFINED_REF(provider)    &lttng_ust_tracepoint_provider_##provider
 #endif /* TRACEPOINT_PROBE_DYNAMIC_LINKAGE */
 
 /*
@@ -469,14 +469,14 @@ extern struct lttng_ust_tracepoint * const __stop___tracepoints_ptrs[]
 
 #define LTTNG_UST__DEFINE_TRACEPOINT(_provider, _name, _args)                          \
        lttng_ust_tracepoint_validate_name_len(_provider, _name);               \
-       extern int __tracepoint_provider_##_provider;                           \
+       extern int lttng_ust_tracepoint_provider_##_provider;                           \
        static const char __tp_provider_strtab_##_provider##___##_name[]        \
                __attribute__((section("__tracepoints_strings"))) =             \
                        #_provider;                                             \
        static const char __tp_name_strtab_##_provider##___##_name[]            \
                __attribute__((section("__tracepoints_strings"))) =             \
                        #_name;                                                 \
-       struct lttng_ust_tracepoint __tracepoint_##_provider##___##_name        \
+       struct lttng_ust_tracepoint lttng_ust_tracepoint_##_provider##___##_name        \
                __attribute__((section("__tracepoints"))) = {                   \
                        sizeof(struct lttng_ust_tracepoint),                    \
                        __tp_provider_strtab_##_provider##___##_name,           \
@@ -487,10 +487,10 @@ extern struct lttng_ust_tracepoint * const __stop___tracepoints_ptrs[]
                        _TP_EXTRACT_STRING(_args),                              \
                };                                                              \
        static struct lttng_ust_tracepoint *                                    \
-               __tracepoint_ptr_##_provider##___##_name                        \
+               lttng_ust_tracepoint_ptr_##_provider##___##_name                        \
                __attribute__((section("__tracepoints_ptrs"), used))            \
                __lttng_ust_variable_attribute_no_sanitize_address =            \
-                       &__tracepoint_##_provider##___##_name;
+                       &lttng_ust_tracepoint_##_provider##___##_name;
 
 static void
 __tracepoints__ptrs_init(void)
@@ -498,36 +498,36 @@ __tracepoints__ptrs_init(void)
 static void
 __tracepoints__ptrs_init(void)
 {
-       if (__tracepoint_ptrs_registered++)
+       if (lttng_ust_tracepoint_ptrs_registered++)
                return;
-       if (!tracepoint_dlopen_ptr)
-               tracepoint_dlopen_ptr = &tracepoint_dlopen;
-       if (!tracepoint_dlopen_ptr->liblttngust_handle)
-               tracepoint_dlopen_ptr->liblttngust_handle =
+       if (!lttng_ust_tracepoint_dlopen_ptr)
+               lttng_ust_tracepoint_dlopen_ptr = &lttng_ust_tracepoint_dlopen;
+       if (!lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle)
+               lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle =
                        dlopen(LTTNG_UST_TRACEPOINT_LIB_SONAME, RTLD_NOW | RTLD_GLOBAL);
-       if (!tracepoint_dlopen_ptr->liblttngust_handle)
+       if (!lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle)
                return;
-       if (!tracepoint_destructors_syms_ptr)
-               tracepoint_destructors_syms_ptr = &tracepoint_destructors_syms;
-       tracepoint_dlopen_ptr->tracepoint_register_lib =
+       if (!lttng_ust_tracepoint_destructors_syms_ptr)
+               lttng_ust_tracepoint_destructors_syms_ptr = &lttng_ust_tracepoint_destructors_syms;
+       lttng_ust_tracepoint_dlopen_ptr->tracepoint_register_lib =
                URCU_FORCE_CAST(int (*)(struct lttng_ust_tracepoint * const *, int),
-                               dlsym(tracepoint_dlopen_ptr->liblttngust_handle,
+                               dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
                                        "tracepoint_register_lib"));
-       tracepoint_dlopen_ptr->tracepoint_unregister_lib =
+       lttng_ust_tracepoint_dlopen_ptr->tracepoint_unregister_lib =
                URCU_FORCE_CAST(int (*)(struct lttng_ust_tracepoint * const *),
-                               dlsym(tracepoint_dlopen_ptr->liblttngust_handle,
+                               dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
                                        "tracepoint_unregister_lib"));
-       tracepoint_destructors_syms_ptr->tracepoint_disable_destructors =
+       lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_disable_destructors =
                URCU_FORCE_CAST(void (*)(void),
-                               dlsym(tracepoint_dlopen_ptr->liblttngust_handle,
+                               dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
                                        "tp_disable_destructors"));
-       tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state =
+       lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state =
                URCU_FORCE_CAST(int (*)(void),
-                               dlsym(tracepoint_dlopen_ptr->liblttngust_handle,
+                               dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
                                        "tp_get_destructors_state"));
-       __tracepoint__init_urcu_sym();
-       if (tracepoint_dlopen_ptr->tracepoint_register_lib) {
-               tracepoint_dlopen_ptr->tracepoint_register_lib(__start___tracepoints_ptrs,
+       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);
        }
@@ -541,24 +541,24 @@ __tracepoints__ptrs_destroy(void)
 {
        int ret;
 
-       if (--__tracepoint_ptrs_registered)
+       if (--lttng_ust_tracepoint_ptrs_registered)
                return;
-       if (!tracepoint_dlopen_ptr)
-               tracepoint_dlopen_ptr = &tracepoint_dlopen;
-       if (!tracepoint_destructors_syms_ptr)
-               tracepoint_destructors_syms_ptr = &tracepoint_destructors_syms;
-       if (tracepoint_dlopen_ptr->tracepoint_unregister_lib)
-               tracepoint_dlopen_ptr->tracepoint_unregister_lib(__start___tracepoints_ptrs);
-       if (tracepoint_dlopen_ptr->liblttngust_handle
-                       && tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state
-                       && tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state()
-                       && !__tracepoint_ptrs_registered) {
-               ret = dlclose(tracepoint_dlopen_ptr->liblttngust_handle);
+       if (!lttng_ust_tracepoint_dlopen_ptr)
+               lttng_ust_tracepoint_dlopen_ptr = &lttng_ust_tracepoint_dlopen;
+       if (!lttng_ust_tracepoint_destructors_syms_ptr)
+               lttng_ust_tracepoint_destructors_syms_ptr = &lttng_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->liblttngust_handle
+                       && lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state
+                       && lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_get_destructors_state()
+                       && !lttng_ust_tracepoint_ptrs_registered) {
+               ret = dlclose(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle);
                if (ret) {
                        fprintf(stderr, "Error (%d) in dlclose\n", ret);
                        abort();
                }
-               memset(tracepoint_dlopen_ptr, 0, sizeof(*tracepoint_dlopen_ptr));
+               memset(lttng_ust_tracepoint_dlopen_ptr, 0, sizeof(*lttng_ust_tracepoint_dlopen_ptr));
        }
 }
 
This page took 0.051687 seconds and 4 git commands to generate.