#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) \
({ \
* 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)
{
}
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 TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
}
/*
#define LTTNG_UST__TRACEPOINT_EVENT_INSTANCE(_provider, _template, _name, _args) \
lttng_ust_tracepoint_validate_name_len(_provider, _name);
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 0.2 of tracepoint event generation.
#define LTTNG_UST__TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \
void __event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args));
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 0.9 of tracepoint event generation
.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[] = { \
_values \
ctf_enum_value("", 0) /* Dummy, 0-len array forbidden by C99. */ \
};
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 0.9.1
#define LTTNG_UST__TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \
_fields
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 1 of tracepoint event generation.
.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 TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 2 of tracepoint event generation.
#define LTTNG_UST__TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \
static void __event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args));
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 3.0 of tracepoint event generation.
#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) \
return __event_len; \
}
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 3.1 of tracepoint event generation.
#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 *); \
}
_fields \
}
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 4 of tracepoint event generation.
return __event_align; \
}
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
#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)); \
}
{ \
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]; \
} \
}
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
#undef __get_dynamic_len
static const char __tp_event_signature___##_provider##___##_name[] = \
_TP_EXTRACT_STRING2(_args);
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
#undef _TP_EXTRACT_STRING2
#define LTTNG_UST_TP_EXTERN_C
#endif
-#undef TRACEPOINT_LOGLEVEL
-#define TRACEPOINT_LOGLEVEL(__provider, __name, __loglevel) \
+#undef LTTNG_UST_TRACEPOINT_LOGLEVEL
+#define LTTNG_UST_TRACEPOINT_LOGLEVEL(__provider, __name, __loglevel) \
static const int _loglevel_value___##__provider##___##__name = __loglevel; \
LTTNG_UST_TP_EXTERN_C const int * const _loglevel___##__provider##___##__name \
__attribute__((visibility("hidden"))) = \
&_loglevel_value___##__provider##___##__name;
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
#undef LTTNG_UST_TP_EXTERN_C
#define LTTNG_UST_TP_EXTERN_C
#endif
-#undef TRACEPOINT_MODEL_EMF_URI
-#define TRACEPOINT_MODEL_EMF_URI(__provider, __name, __uri) \
+#undef LTTNG_UST_TRACEPOINT_MODEL_EMF_URI
+#define LTTNG_UST_TRACEPOINT_MODEL_EMF_URI(__provider, __name, __uri) \
LTTNG_UST_TP_EXTERN_C const char * const _model_emf_uri___##__provider##___##__name \
__attribute__((visibility("hidden"))) = __uri; \
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
#undef LTTNG_UST_TP_EXTERN_C
* 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")));
/*
.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, \
};
-#include TRACEPOINT_INCLUDE
+#include LTTNG_UST_TRACEPOINT_INCLUDE
/*
* Stage 7.2 of tracepoint event generation.
#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)[] = {
-#include TRACEPOINT_INCLUDE
+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. */
};
* 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.
/* 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(<TNG_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(<TNG_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")));