X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-tracepoint-event.h;h=aac32b96833413fe66add9a52097a4e5221fb344;hb=a8909ba54718ed54cefb1b839a5d41a065df09f9;hp=8db1e688fb8ff3d9dba3d8dcd1242be62ebc0cdf;hpb=9b33aac411033000adafce04f947c7aca892c342;p=lttng-ust.git diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h index 8db1e688..aac32b96 100644 --- a/include/lttng/ust-tracepoint-event.h +++ b/include/lttng/ust-tracepoint-event.h @@ -16,6 +16,7 @@ #include #include #include +#include #include /* @@ -243,8 +244,11 @@ static void __event_probe__##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args)); #define TP_FIELDS(...) __VA_ARGS__ #undef TRACEPOINT_EVENT_CLASS -#define TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \ -static inline size_t __event_get_size__##_provider##___##_name(size_t *__dynamic_len, _TP_ARGS_DATA_PROTO(_args)) \ +#define TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \ +static inline lttng_ust_notrace \ +size_t __event_get_size__##_provider##___##_name(size_t *__dynamic_len, _TP_ARGS_DATA_PROTO(_args)); \ +static inline \ +size_t __event_get_size__##_provider##___##_name(size_t *__dynamic_len, _TP_ARGS_DATA_PROTO(_args)) \ { \ size_t __event_len = 0; \ unsigned int __dynamic_len_idx = 0; \ @@ -360,6 +364,8 @@ void __event_prepare_filter_stack__##_provider##___##_name(char *__stack_data,\ #undef TRACEPOINT_EVENT_CLASS #define TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \ +static inline lttng_ust_notrace \ +size_t __event_get_align__##_provider##___##_name(_TP_ARGS_PROTO(_args)); \ static inline \ size_t __event_get_align__##_provider##___##_name(_TP_ARGS_PROTO(_args)) \ { \ @@ -438,7 +444,10 @@ size_t __event_get_align__##_provider##___##_name(_TP_ARGS_PROTO(_args)) \ */ #undef TRACEPOINT_EVENT_CLASS #define TRACEPOINT_EVENT_CLASS(_provider, _name, _args, _fields) \ -static void __event_probe__##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args))\ +static lttng_ust_notrace \ +void __event_probe__##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args)); \ +static \ +void __event_probe__##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args)) \ { \ struct ltt_event *__event = __tp_data; \ struct ltt_channel *__chan = __event->chan; \ @@ -593,7 +602,9 @@ static struct lttng_probe_desc _TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PR /* Reset all macros within TRACEPOINT_EVENT */ #include -static void __attribute__((constructor)) +static void lttng_ust_notrace __attribute__((constructor)) +_TP_COMBINE_TOKENS(__lttng_events_init__, TRACEPOINT_PROVIDER)(void); +static void _TP_COMBINE_TOKENS(__lttng_events_init__, TRACEPOINT_PROVIDER)(void) { int ret; @@ -602,7 +613,9 @@ _TP_COMBINE_TOKENS(__lttng_events_init__, TRACEPOINT_PROVIDER)(void) assert(!ret); } -static void __attribute__((destructor)) +static void lttng_ust_notrace __attribute__((destructor)) +_TP_COMBINE_TOKENS(__lttng_events_exit__, TRACEPOINT_PROVIDER)(void); +static void _TP_COMBINE_TOKENS(__lttng_events_exit__, TRACEPOINT_PROVIDER)(void) { ltt_probe_unregister(&_TP_COMBINE_TOKENS(__probe_desc___, TRACEPOINT_PROVIDER));