X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ust%2Ftracelog.c;h=bd38032cba31d30654bbc4a67a0d7bcc76030bab;hb=1c0569ec0d094571d181d1fce53ecfce8877614f;hp=f506e8aef080fb884315fa8ae1ea8f76ad4757d7;hpb=88c7c4eacbd4a98ad8e5df341ae2f1223b735194;p=lttng-ust.git diff --git a/src/lib/lttng-ust/tracelog.c b/src/lib/lttng-ust/tracelog.c index f506e8ae..bd38032c 100644 --- a/src/lib/lttng-ust/tracelog.c +++ b/src/lib/lttng-ust/tracelog.c @@ -7,83 +7,64 @@ #define _LGPL_SOURCE #include #include "common/macros.h" +#include "common/tracer.h" -#define TRACEPOINT_CREATE_PROBES +/* The tracepoint definition is public, but the provider definition is hidden. */ +#define LTTNG_UST_TRACEPOINT_PROVIDER_HIDDEN_DEFINITION + +#define LTTNG_UST_TRACEPOINT_CREATE_PROBES #define LTTNG_UST_TRACEPOINT_DEFINE #include "lttng-ust-tracelog-provider.h" -#define TRACELOG_CB(level) \ - static inline \ - void __lttng_ust_vtracelog_##level(const char *file, \ - int line, const char *func, \ - const char *fmt, va_list ap) \ - __attribute__((always_inline, format(printf, 4, 0))); \ - \ - static inline \ - void __lttng_ust_vtracelog_##level(const char *file, \ - int line, const char *func, \ - const char *fmt, va_list ap) \ - { \ - char *msg; \ - const int len = vasprintf(&msg, fmt, ap); \ - \ - /* len does not include the final \0 */ \ - if (len < 0) \ - goto end; \ - lttng_ust_tracepoint_cb_lttng_ust_tracelog___##level(file, \ - line, func, msg, len, \ - LTTNG_UST_CALLER_IP()); \ - free(msg); \ - end: \ - return; \ - } \ - \ - void _lttng_ust_vtracelog_##level(const char *file, \ +#include "tracelog-internal.h" + +#define LTTNG_UST_TRACELOG_CB(level) \ + void lttng_ust__vtracelog_##level(const char *file, \ int line, const char *func, \ const char *fmt, va_list ap) \ __attribute__ ((format(printf, 4, 0))); \ \ - void _lttng_ust_vtracelog_##level(const char *file, \ + void lttng_ust__vtracelog_##level(const char *file, \ int line, const char *func, \ const char *fmt, va_list ap); \ - void _lttng_ust_vtracelog_##level(const char *file, \ + void lttng_ust__vtracelog_##level(const char *file, \ int line, const char *func, \ const char *fmt, va_list ap) \ { \ - __lttng_ust_vtracelog_##level(file, line, func, fmt, ap); \ + LTTNG_UST_TRACELOG_VALIST(fmt, ap, \ + lttng_ust_tracepoint_cb_lttng_ust_tracelog___##level, \ + file, line, func, msg, len, LTTNG_UST_CALLER_IP()); \ } \ \ - void _lttng_ust_tracelog_##level(const char *file, \ + void lttng_ust__tracelog_##level(const char *file, \ int line, const char *func, \ const char *fmt, ...) \ __attribute__ ((format(printf, 4, 5))); \ \ - void _lttng_ust_tracelog_##level(const char *file, \ + void lttng_ust__tracelog_##level(const char *file, \ int line, const char *func, \ const char *fmt, ...); \ - void _lttng_ust_tracelog_##level(const char *file, \ + void lttng_ust__tracelog_##level(const char *file, \ int line, const char *func, \ const char *fmt, ...) \ { \ - va_list ap; \ - \ - va_start(ap, fmt); \ - __lttng_ust_vtracelog_##level(file, line, func, fmt, ap); \ - va_end(ap); \ + LTTNG_UST_TRACELOG_VARARG(fmt, \ + lttng_ust_tracepoint_cb_lttng_ust_tracelog___##level, \ + file, line, func, msg, len, LTTNG_UST_CALLER_IP()); \ } -TRACELOG_CB(TRACE_EMERG) -TRACELOG_CB(TRACE_ALERT) -TRACELOG_CB(TRACE_CRIT) -TRACELOG_CB(TRACE_ERR) -TRACELOG_CB(TRACE_WARNING) -TRACELOG_CB(TRACE_NOTICE) -TRACELOG_CB(TRACE_INFO) -TRACELOG_CB(TRACE_DEBUG_SYSTEM) -TRACELOG_CB(TRACE_DEBUG_PROGRAM) -TRACELOG_CB(TRACE_DEBUG_PROCESS) -TRACELOG_CB(TRACE_DEBUG_MODULE) -TRACELOG_CB(TRACE_DEBUG_UNIT) -TRACELOG_CB(TRACE_DEBUG_FUNCTION) -TRACELOG_CB(TRACE_DEBUG_LINE) -TRACELOG_CB(TRACE_DEBUG) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_EMERG) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_ALERT) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_CRIT) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_ERR) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_WARNING) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_NOTICE) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_INFO) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_SYSTEM) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROGRAM) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROCESS) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_MODULE) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_UNIT) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_FUNCTION) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_LINE) +LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG)