Refactoring: tracepoint: allow explicit tracepoint instance provider name
[lttng-ust.git] / include / lttng / tracepoint.h
index 23f01547720b67a5068eb940df210c6714c6467e..1f8b9209de0c1ec4992af786f32ef623230fbc28 100644 (file)
@@ -216,7 +216,7 @@ static inline                                                                               \
 void lttng_ust_tracepoint_register_##_provider##___##_name(char *provider_name, char *event_name, \
                void (*func)(void), void *data)                                         \
 {                                                                                      \
-       lttng_ust_tracepoint_probe_register(provider_name, event_name, func, data,              \
+       lttng_ust_tracepoint_provider_register(provider_name, event_name, func, data,           \
                lttng_ust_tracepoint_##_provider##___##_name.signature);                        \
 }                                                                                      \
 static inline                                                                          \
@@ -227,14 +227,27 @@ static inline                                                                             \
 void lttng_ust_tracepoint_unregister_##_provider##___##_name(char *provider_name, char *event_name, \
                void (*func)(void), void *data)                                         \
 {                                                                                      \
-       lttng_ust_tracepoint_probe_unregister(provider_name, event_name, func, data);           \
+       lttng_ust_tracepoint_provider_unregister(provider_name, event_name, func, data);                \
 }
 
-extern int lttng_ust_tracepoint_probe_register(const char *provider_name, const char *event_name,
+/*
+ * Registration of tracepoint provider probe functions with
+ * lttng_ust_tracepoint_provider_register, unregistration with
+ * lttng_ust_tracepoint_provider_unregister.
+ */
+int lttng_ust_tracepoint_provider_register(const char *provider_name, const char *event_name,
                void (*func)(void), void *data, const char *signature);
-extern int lttng_ust_tracepoint_probe_unregister(const char *provider_name, const char *event_name,
+int lttng_ust_tracepoint_provider_unregister(const char *provider_name, const char *event_name,
                void (*func)(void), void *data);
 
+/*
+ * Registration of tracepoint instrumentation modules with lttng_ust_tracepoint_module_register,
+ * unregistration with lttng_ust_tracepoint_module_unregister.
+ */
+int lttng_ust_tracepoint_module_register(struct lttng_ust_tracepoint * const *tracepoints_start,
+                             int tracepoints_count);
+int lttng_ust_tracepoint_module_unregister(struct lttng_ust_tracepoint * const *tracepoints_start);
+
 /*
  * tracepoint dynamic linkage handling (callbacks). Hidden visibility:
  * shared across objects in a module/main executable.
@@ -252,9 +265,9 @@ struct lttng_ust_tracepoint_dlopen {
 
        void *liblttngust_handle;
 
-       int (*lttng_ust_tracepoint_register_lib)(struct lttng_ust_tracepoint * const *tracepoints_start,
+       int (*lttng_ust_tracepoint_module_register)(struct lttng_ust_tracepoint * const *tracepoints_start,
                int tracepoints_count);
-       int (*lttng_ust_tracepoint_unregister_lib)(struct lttng_ust_tracepoint * const *tracepoints_start);
+       int (*lttng_ust_tracepoint_module_unregister)(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);
@@ -525,14 +538,14 @@ lttng_ust__tracepoints__ptrs_init(void)
                return;
        if (!lttng_ust_tracepoint_destructors_syms_ptr)
                lttng_ust_tracepoint_destructors_syms_ptr = &lttng_ust_tracepoint_destructors_syms;
-       lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_register_lib =
+       lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_module_register =
                URCU_FORCE_CAST(int (*)(struct lttng_ust_tracepoint * const *, int),
                                dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
-                                       "lttng_ust_tracepoint_register_lib"));
-       lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_unregister_lib =
+                                       "lttng_ust_tracepoint_module_register"));
+       lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_module_unregister =
                URCU_FORCE_CAST(int (*)(struct lttng_ust_tracepoint * const *),
                                dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
-                                       "lttng_ust_tracepoint_unregister_lib"));
+                                       "lttng_ust_tracepoint_module_unregister"));
        lttng_ust_tracepoint_destructors_syms_ptr->tracepoint_disable_destructors =
                URCU_FORCE_CAST(void (*)(void),
                                dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
@@ -542,8 +555,8 @@ lttng_ust__tracepoints__ptrs_init(void)
                                dlsym(lttng_ust_tracepoint_dlopen_ptr->liblttngust_handle,
                                        "lttng_ust_tp_get_destructors_state"));
        lttng_ust_tracepoint__init_urcu_sym();
-       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,
+       if (lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_module_register) {
+               lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_module_register(__start_lttng_ust_tracepoints_ptrs,
                                __stop_lttng_ust_tracepoints_ptrs -
                                __start_lttng_ust_tracepoints_ptrs);
        }
@@ -563,8 +576,8 @@ lttng_ust__tracepoints__ptrs_destroy(void)
                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->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->lttng_ust_tracepoint_module_unregister)
+               lttng_ust_tracepoint_dlopen_ptr->lttng_ust_tracepoint_module_unregister(__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()
@@ -770,14 +783,17 @@ lttng_ust__tracepoints__ptrs_destroy(void)
 
 #define LTTNG_UST_TRACEPOINT_EVENT_CLASS(provider, name, args, fields)
 
-#define LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(provider, _template, name, args)   \
+#define LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(template_provider, template_name, provider, name, 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
 #define TRACEPOINT_EVENT_CLASS         LTTNG_UST_TRACEPOINT_EVENT_CLASS
-#define TRACEPOINT_EVENT_INSTANCE      LTTNG_UST_TRACEPOINT_EVENT_INSTANCE
+#define TRACEPOINT_EVENT_INSTANCE(_provider, _template, _name, args)   \
+       LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(_provider, _template,       \
+               _provider, _name, LTTNG_UST__TP_PARAMS(args))
+
 #endif /* #if LTTNG_UST_COMPAT_API(0) */
 
 #endif /* #ifndef LTTNG_UST_TRACEPOINT_EVENT */
This page took 0.025685 seconds and 4 git commands to generate.