X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Ftracepoint.h;h=4b7473eee49a7c6866e33cb001464b73e2a7b181;hb=28ed962891cb7d32463aa9e8ced9d37a97eaea22;hp=0327c11dead59e3f0894726b76f4f15120923088;hpb=76aca78d0ff0670d6979a82ca688956c1d9d90a5;p=lttng-ust.git diff --git a/include/lttng/tracepoint.h b/include/lttng/tracepoint.h index 0327c11d..4b7473ee 100644 --- a/include/lttng/tracepoint.h +++ b/include/lttng/tracepoint.h @@ -145,11 +145,16 @@ extern "C" { #define _TP_ARGS_DATA_VAR(...) _TP_DATA_VAR_N(_TP_NARGS(0, ##__VA_ARGS__), ##__VA_ARGS__) #define _TP_PARAMS(...) __VA_ARGS__ +/* + * The tracepoint cb is marked always inline so we can distinguish + * between caller's ip addresses within the probe using the return + * address. + */ #define _DECLARE_TRACEPOINT(_provider, _name, ...) \ extern struct tracepoint __tracepoint_##_provider##___##_name; \ -static inline lttng_ust_notrace \ +static inline __attribute__((always_inline, unused)) lttng_ust_notrace \ void __tracepoint_cb_##_provider##___##_name(_TP_ARGS_PROTO(__VA_ARGS__)); \ -static inline \ +static \ void __tracepoint_cb_##_provider##___##_name(_TP_ARGS_PROTO(__VA_ARGS__)) \ { \ struct tracepoint_probe *__tp_probe; \ @@ -347,6 +352,7 @@ extern struct tracepoint * const __stop___tracepoints_ptrs[] NULL, \ _TRACEPOINT_UNDEFINED_REF(_provider), \ _TP_EXTRACT_STRING(_args), \ + { }, \ }; \ static struct tracepoint * __tracepoint_ptr_##_provider##___##_name \ __attribute__((used, section("__tracepoints_ptrs"))) = \ @@ -565,7 +571,7 @@ __tracepoints__ptrs_destroy(void) * debug information with line-level scope (TRACEPOINT_EVENT default) * * TRACE_DEBUG 14 - * debug-level message (trace_printf default) + * debug-level message * * Declare tracepoint loglevels for tracepoints. A TRACEPOINT_EVENT * should be declared prior to the the TRACEPOINT_LOGLEVEL for a given