X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Ftracepoint.h;h=66e2abd7c505a296389c4bc691a809eed4c8b812;hb=31ea1f6f0435b9e4ae91f72462fa0c2856dce8b2;hp=0327c11dead59e3f0894726b76f4f15120923088;hpb=76aca78d0ff0670d6979a82ca688956c1d9d90a5;p=lttng-ust.git diff --git a/include/lttng/tracepoint.h b/include/lttng/tracepoint.h index 0327c11d..66e2abd7 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)) 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"))) = \