Tracepoint API namespacing '_tp_max_t'
[lttng-ust.git] / include / lttng / ust-tracepoint-event.h
index d3127016378c143061eb6118075464bb790b8f4c..5c6b846a3954e219b1fb938b350964afe9a5ca5f 100644 (file)
 #include <lttng/ust-compiler.h>
 #include <lttng/tracepoint.h>
 #include <lttng/ust-endian.h>
+#include <lttng/ust-api-compat.h>
 #include <string.h>
 
-#define __LTTNG_UST_NULL_STRING        "(null)"
+#define LTTNG_UST__NULL_STRING "(null)"
 
 #undef tp_list_for_each_entry_rcu
 #define tp_list_for_each_entry_rcu(pos, head, member)  \
        LTTNG_UST__TRACEPOINT_EVENT_INSTANCE(_provider, _template, _name, LTTNG_UST__TP_PARAMS(_args))
 
 /* Helpers */
-#define _TP_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+#define LTTNG_UST__TP_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
 
-#define _tp_max_t(type, x, y)                          \
+#define lttng_ust__tp_max_t(type, x, y)                        \
        ({                                              \
-               type __max1 = (x);                      \
-               type __max2 = (y);                      \
-               __max1 > __max2 ? __max1: __max2;       \
+               type lttng_ust__max1 = (x);             \
+               type lttng_ust__max2 = (y);             \
+               lttng_ust__max1 > lttng_ust__max2 ? lttng_ust__max1: lttng_ust__max2;   \
        })
 
 /*
  * Stage 0 of tracepoint event generation.
  *
  * Check that each LTTNG_UST_TRACEPOINT_EVENT provider argument match the
- * TRACEPOINT_PROVIDER by creating dummy callbacks.
+ * LTTNG_UST_TRACEPOINT_PROVIDER by creating dummy callbacks.
  */
 
 /* Reset all macros within LTTNG_UST_TRACEPOINT_EVENT */
 #include <lttng/ust-tracepoint-event-reset.h>
 
 static inline
-void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_mismatch_, TRACEPOINT_PROVIDER)(void)
+void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_mismatch_, LTTNG_UST_TRACEPOINT_PROVIDER)(void)
        lttng_ust_notrace;
 static inline
-void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_mismatch_, TRACEPOINT_PROVIDER)(void)
+void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_mismatch_, LTTNG_UST_TRACEPOINT_PROVIDER)(void)
 {
 }
 
@@ -89,10 +90,10 @@ void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_mismatch_, TRACE
        lttng_ust_tracepoint_provider_mismatch_##_provider();
 
 static inline
-void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_check_, TRACEPOINT_PROVIDER)(void)
+void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_check_, LTTNG_UST_TRACEPOINT_PROVIDER)(void)
        lttng_ust_notrace;
 static inline
-void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_check_, TRACEPOINT_PROVIDER)(void)
+void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_check_, LTTNG_UST_TRACEPOINT_PROVIDER)(void)
 {
 #include LTTNG_UST_TRACEPOINT_INCLUDE
 }
@@ -197,10 +198,15 @@ void __event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PR
                .options = LTTNG_UST_ENUM_ENTRY_OPTION_IS_AUTO,         \
        }),
 
-#undef TP_ENUM_VALUES
-#define TP_ENUM_VALUES(...)                                            \
+#undef LTTNG_UST_TP_ENUM_VALUES
+#define LTTNG_UST_TP_ENUM_VALUES(...)                                          \
        __VA_ARGS__
 
+#if LTTNG_UST_COMPAT_API(0)
+# undef TP_ENUM_VALUES
+# define TP_ENUM_VALUES LTTNG_UST_TP_ENUM_VALUES
+#endif /* #if LTTNG_UST_COMPAT_API(0) */
+
 #undef LTTNG_UST_TRACEPOINT_ENUM
 #define LTTNG_UST_TRACEPOINT_ENUM(_provider, _name, _values)                   \
        const struct lttng_ust_enum_entry * const __enum_values__##_provider##_##_name[] = { \
@@ -373,7 +379,7 @@ void __event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PR
                .struct_size = sizeof(struct lttng_ust_enum_desc),                      \
                .name = #_provider "_" #_name,                                          \
                .entries = __enum_values__##_provider##_##_name,                        \
-               .nr_entries = _TP_ARRAY_SIZE(__enum_values__##_provider##_##_name) - 1, \
+               .nr_entries = LTTNG_UST__TP_ARRAY_SIZE(__enum_values__##_provider##_##_name) - 1,       \
        };
 
 #include LTTNG_UST_TRACEPOINT_INCLUDE
@@ -443,7 +449,7 @@ static void __event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO
 #undef _ctf_string
 #define _ctf_string(_item, _src, _nowrite)                                    \
        __event_len += __dynamic_len[__dynamic_len_idx++] =                    \
-               strlen((_src) ? (_src) : __LTTNG_UST_NULL_STRING) + 1;
+               strlen((_src) ? (_src) : LTTNG_UST__NULL_STRING) + 1;
 
 #undef _ctf_unused
 #define _ctf_unused(_src)                                                      \
@@ -609,7 +615,7 @@ size_t __event_get_size__##_provider##___##_name(                         \
 #define _ctf_string(_item, _src, _nowrite)                                    \
        {                                                                      \
                const void *__ctf_tmp_ptr =                                    \
-                       ((_src) ? (_src) : __LTTNG_UST_NULL_STRING);           \
+                       ((_src) ? (_src) : LTTNG_UST__NULL_STRING);            \
                memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void *));          \
                __stack_data += sizeof(void *);                                \
        }
@@ -659,20 +665,20 @@ void __event_prepare_interpreter_stack__##_provider##___##_name(char *__stack_da
 #define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite)     \
        if (0)                                                                 \
                (void) (_src);  /* Unused */                                   \
-       __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
+       __event_align = lttng_ust__tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
 
 #undef _ctf_float
 #define _ctf_float(_type, _item, _src, _nowrite)                              \
        if (0)                                                                 \
                (void) (_src);  /* Unused */                                   \
-       __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
+       __event_align = lttng_ust__tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
 
 #undef _ctf_array_encoded
 #define _ctf_array_encoded(_type, _item, _src, _byte_order, _length,          \
                        _encoding, _nowrite, _elem_type_base)                  \
        if (0)                                                                 \
                (void) (_src);  /* Unused */                                   \
-       __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
+       __event_align = lttng_ust__tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
 
 #undef _ctf_sequence_encoded
 #define _ctf_sequence_encoded(_type, _item, _src, _byte_order, _length_type,   \
@@ -681,8 +687,8 @@ void __event_prepare_interpreter_stack__##_provider##___##_name(char *__stack_da
                (void) (_src);  /* Unused */                                   \
        if (0)                                                                 \
                (void) (_src_length);   /* Unused */                           \
-       __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_length_type));     \
-       __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
+       __event_align = lttng_ust__tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_length_type));   \
+       __event_align = lttng_ust__tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
 
 #undef _ctf_string
 #define _ctf_string(_item, _src, _nowrite)                                     \
@@ -770,7 +776,7 @@ size_t __event_get_align__##_provider##___##_name(LTTNG_UST__TP_ARGS_PROTO(_args
 #define _ctf_string(_item, _src, _nowrite)                                     \
        {                                                                       \
                const char *__ctf_tmp_string =                                  \
-                       ((_src) ? (_src) : __LTTNG_UST_NULL_STRING);            \
+                       ((_src) ? (_src) : LTTNG_UST__NULL_STRING);             \
                __chan->ops->event_strcpy(&__ctx, __ctf_tmp_string,             \
                        __get_dynamic_len(dest));                               \
        }
@@ -840,7 +846,7 @@ void __event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args)
 {                                                                            \
        struct lttng_ust_event_common *__event = (struct lttng_ust_event_common *) __tp_data; \
        size_t __dynamic_len_idx = 0;                                         \
-       const size_t __num_fields = _TP_ARRAY_SIZE(__event_fields___##_provider##___##_name) - 1; \
+       const size_t __num_fields = LTTNG_UST__TP_ARRAY_SIZE(__event_fields___##_provider##___##_name) - 1; \
        union {                                                               \
                size_t __dynamic_len[__num_fields];                           \
                char __interpreter_stack_data[2 * sizeof(unsigned long) * __num_fields]; \
@@ -1022,7 +1028,7 @@ LTTNG_UST_TP_EXTERN_C const char * const _model_emf_uri___##__provider##___##__n
  * symbol table.
  */
 
-extern const struct lttng_ust_probe_desc LTTNG_UST__TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER)
+extern const struct lttng_ust_probe_desc LTTNG_UST__TP_COMBINE_TOKENS(__probe_desc___, LTTNG_UST_TRACEPOINT_PROVIDER)
        __attribute__((visibility("hidden")));
 
 /*
@@ -1056,7 +1062,7 @@ static const struct lttng_ust_event_desc __event_desc___##_provider##_##_name =
        .probe_desc = &__probe_desc___##_provider,                             \
        .probe_callback = (void (*)(void)) &__event_probe__##_provider##___##_template, \
        .fields = __event_fields___##_provider##___##_template,                \
-       .nr_fields = _TP_ARRAY_SIZE(__event_fields___##_provider##___##_template) - 1, \
+       .nr_fields = LTTNG_UST__TP_ARRAY_SIZE(__event_fields___##_provider##___##_template) - 1, \
        .loglevel = &__ref_loglevel___##_provider##___##_name,                 \
        .signature = __tp_event_signature___##_provider##___##_template,       \
        .model_emf_uri = &__ref_model_emf_uri___##_provider##___##_name,       \
@@ -1077,7 +1083,7 @@ static const struct lttng_ust_event_desc __event_desc___##_provider##_##_name =
 #define LTTNG_UST__TRACEPOINT_EVENT_INSTANCE(_provider, _template, _name, _args)              \
        &__event_desc___##_provider##_##_name,
 
-static const struct lttng_ust_event_desc * const LTTNG_UST__TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER)[] = {
+static const struct lttng_ust_event_desc * const LTTNG_UST__TP_COMBINE_TOKENS(__event_desc___, LTTNG_UST_TRACEPOINT_PROVIDER)[] = {
 #include LTTNG_UST_TRACEPOINT_INCLUDE
        NULL,   /* Dummy, C99 forbids 0-len array. */
 };
@@ -1089,17 +1095,17 @@ static const struct lttng_ust_event_desc * const LTTNG_UST__TP_COMBINE_TOKENS(__
  * Create a toplevel descriptor for the whole probe.
  */
 
-const struct lttng_ust_probe_desc LTTNG_UST__TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER) = {
+const struct lttng_ust_probe_desc LTTNG_UST__TP_COMBINE_TOKENS(__probe_desc___, LTTNG_UST_TRACEPOINT_PROVIDER) = {
        .struct_size = sizeof(struct lttng_ust_probe_desc),
-       .provider_name = __tp_stringify(TRACEPOINT_PROVIDER),
-       .event_desc = LTTNG_UST__TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER),
-       .nr_events = _TP_ARRAY_SIZE(LTTNG_UST__TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER)) - 1,
+       .provider_name = __tp_stringify(LTTNG_UST_TRACEPOINT_PROVIDER),
+       .event_desc = LTTNG_UST__TP_COMBINE_TOKENS(__event_desc___, LTTNG_UST_TRACEPOINT_PROVIDER),
+       .nr_events = LTTNG_UST__TP_ARRAY_SIZE(LTTNG_UST__TP_COMBINE_TOKENS(__event_desc___, LTTNG_UST_TRACEPOINT_PROVIDER)) - 1,
        .major = LTTNG_UST_PROVIDER_MAJOR,
        .minor = LTTNG_UST_PROVIDER_MINOR,
 };
 
-static int LTTNG_UST__TP_COMBINE_TOKENS(__probe_register_refcount___, TRACEPOINT_PROVIDER);
-static struct lttng_ust_registered_probe *LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, TRACEPOINT_PROVIDER);
+static int LTTNG_UST__TP_COMBINE_TOKENS(__probe_register_refcount___, LTTNG_UST_TRACEPOINT_PROVIDER);
+static struct lttng_ust_registered_probe *LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, LTTNG_UST_TRACEPOINT_PROVIDER);
 
 /*
  * Stage 9 of tracepoint event generation.
@@ -1115,48 +1121,48 @@ static struct lttng_ust_registered_probe *LTTNG_UST__TP_COMBINE_TOKENS(__lttng_u
 /* Reset all macros within LTTNG_UST_TRACEPOINT_EVENT */
 #include <lttng/ust-tracepoint-event-reset.h>
 static void
-LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_init__, TRACEPOINT_PROVIDER)(void)
+LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_init__, LTTNG_UST_TRACEPOINT_PROVIDER)(void)
        lttng_ust_notrace __attribute__((constructor));
 static void
-LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_init__, TRACEPOINT_PROVIDER)(void)
+LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_init__, LTTNG_UST_TRACEPOINT_PROVIDER)(void)
 {
        struct lttng_ust_registered_probe *reg_probe;
 
        if (LTTNG_UST__TP_COMBINE_TOKENS(__probe_register_refcount___,
-                       TRACEPOINT_PROVIDER)++) {
+                       LTTNG_UST_TRACEPOINT_PROVIDER)++) {
                return;
        }
        /*
-        * lttng_ust_tracepoint_provider_check_ ## TRACEPOINT_PROVIDER() is a
+        * lttng_ust_tracepoint_provider_check_ ## LTTNG_UST_TRACEPOINT_PROVIDER() is a
         * static inline function that ensures every probe PROVIDER
         * argument match the provider within which they appear. It
         * calls empty static inline functions, and therefore has no
         * runtime effect. However, if it detects an error, a linker
         * error will appear.
         */
-       LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_check_, TRACEPOINT_PROVIDER)();
-       assert(!LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, TRACEPOINT_PROVIDER));
-       reg_probe = lttng_ust_probe_register(&LTTNG_UST__TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER));
+       LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_check_, LTTNG_UST_TRACEPOINT_PROVIDER)();
+       assert(!LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, LTTNG_UST_TRACEPOINT_PROVIDER));
+       reg_probe = lttng_ust_probe_register(&LTTNG_UST__TP_COMBINE_TOKENS(__probe_desc___, LTTNG_UST_TRACEPOINT_PROVIDER));
        if (!reg_probe) {
                fprintf(stderr, "LTTng-UST: Error while registering tracepoint probe.\n");
                abort();
        }
-       LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, TRACEPOINT_PROVIDER) = reg_probe;
+       LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, LTTNG_UST_TRACEPOINT_PROVIDER) = reg_probe;
 }
 
 static void
-LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_exit__, TRACEPOINT_PROVIDER)(void)
+LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_exit__, LTTNG_UST_TRACEPOINT_PROVIDER)(void)
        lttng_ust_notrace __attribute__((destructor));
 static void
-LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_exit__, TRACEPOINT_PROVIDER)(void)
+LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_events_exit__, LTTNG_UST_TRACEPOINT_PROVIDER)(void)
 {
        if (--LTTNG_UST__TP_COMBINE_TOKENS(__probe_register_refcount___,
-                       TRACEPOINT_PROVIDER)) {
+                       LTTNG_UST_TRACEPOINT_PROVIDER)) {
                return;
        }
-       lttng_ust_probe_unregister(LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, TRACEPOINT_PROVIDER));
-       LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, TRACEPOINT_PROVIDER) = NULL;
+       lttng_ust_probe_unregister(LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, LTTNG_UST_TRACEPOINT_PROVIDER));
+       LTTNG_UST__TP_COMBINE_TOKENS(__lttng_ust_probe_register_cookie___, LTTNG_UST_TRACEPOINT_PROVIDER) = NULL;
 }
 
-int LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_, TRACEPOINT_PROVIDER)
+int LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_, LTTNG_UST_TRACEPOINT_PROVIDER)
        __attribute__((visibility("default")));
This page took 0.028594 seconds and 4 git commands to generate.