X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-tracepoint-event.h;h=f4fc0db75af2d6ffaffa42b67a22b9d360c1d60f;hb=ee0889a3fd9dcd72275237344b96fdce192f88b7;hp=fa4739ce3ec5ae05fce112105973a13b12579123;hpb=2ebf164be81fea5f9ec19314a030b5f80a8f8fc5;p=lttng-ust.git diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h index fa4739ce..f4fc0db7 100644 --- a/include/lttng/ust-tracepoint-event.h +++ b/include/lttng/ust-tracepoint-event.h @@ -15,9 +15,10 @@ #include #include #include +#include #include -#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) \ @@ -66,17 +67,17 @@ * 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 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,12 +90,12 @@ 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 TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE } /* @@ -111,7 +112,7 @@ void LTTNG_UST__TP_COMBINE_TOKENS(lttng_ust_tracepoint_provider_check_, TRACEPOI #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. @@ -135,7 +136,7 @@ void __event_template_proto___##_provider##___##_template(LTTNG_UST__TP_ARGS_DAT #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 @@ -197,17 +198,22 @@ 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[] = { \ _values \ ctf_enum_value("", 0) /* Dummy, 0-len array forbidden by C99. */ \ }; -#include TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE /* * Stage 0.9.1 @@ -238,7 +244,7 @@ void __event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PR #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. @@ -376,7 +382,7 @@ void __event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PR .nr_entries = _TP_ARRAY_SIZE(__enum_values__##_provider##_##_name) - 1, \ }; -#include TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE /* * Stage 2 of tracepoint event generation. @@ -394,7 +400,7 @@ void __event_template_proto___##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PR #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. @@ -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) \ @@ -480,7 +486,7 @@ size_t __event_get_size__##_provider##___##_name( \ return __event_len; \ } -#include TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE /* * Stage 3.1 of tracepoint event generation. @@ -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 *); \ } @@ -643,7 +649,7 @@ void __event_prepare_interpreter_stack__##_provider##___##_name(char *__stack_da _fields \ } -#include TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE /* * Stage 4 of tracepoint event generation. @@ -717,7 +723,7 @@ size_t __event_get_align__##_provider##___##_name(LTTNG_UST__TP_ARGS_PROTO(_args return __event_align; \ } -#include TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE /* @@ -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)); \ } @@ -920,7 +926,7 @@ void __event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args) } \ } -#include TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE #undef __get_dynamic_len @@ -943,7 +949,7 @@ void __event_probe__##_provider##___##_name(LTTNG_UST__TP_ARGS_DATA_PROTO(_args) static const char __tp_event_signature___##_provider##___##_name[] = \ _TP_EXTRACT_STRING2(_args); -#include TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE #undef _TP_EXTRACT_STRING2 @@ -971,14 +977,14 @@ static const char __tp_event_signature___##_provider##___##_name[] = \ #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 @@ -1003,12 +1009,12 @@ LTTNG_UST_TP_EXTERN_C const int * const _loglevel___##__provider##___##__name \ #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 @@ -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"))); /* @@ -1062,7 +1068,7 @@ static const struct lttng_ust_event_desc __event_desc___##_provider##_##_name = .model_emf_uri = &__ref_model_emf_uri___##_provider##___##_name, \ }; -#include TRACEPOINT_INCLUDE +#include LTTNG_UST_TRACEPOINT_INCLUDE /* * Stage 7.2 of tracepoint event generation. @@ -1077,8 +1083,8 @@ 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)[] = { -#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. */ }; @@ -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 = _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 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")));