X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Ftracelog.h;h=f20099413c4bf718de2086af9f53ce4015294146;hb=03221919cc826d830e6a324b7cd0f10f101a44e0;hp=743b6824a0fb2355a7e32a29bd032aff83d91360;hpb=c0c0989ab70574e09b2f7e8b48c2da6af664a849;p=lttng-ust.git diff --git a/include/lttng/tracelog.h b/include/lttng/tracelog.h index 743b6824..f2009941 100644 --- a/include/lttng/tracelog.h +++ b/include/lttng/tracelog.h @@ -7,7 +7,7 @@ #ifndef _LTTNG_UST_TRACELOG_H #define _LTTNG_UST_TRACELOG_H -#include +#include #ifdef __cplusplus extern "C" { @@ -15,39 +15,43 @@ extern "C" { #define TP_TRACELOG_CB_TEMPLATE(level) \ extern void _lttng_ust_tracelog_##level(const char *file, \ - int line, const char *func, const char *fmt, ...); \ + int line, const char *func, const char *fmt, ...) \ + __attribute__ ((format(printf, 4, 5))); \ + \ extern void _lttng_ust_vtracelog_##level(const char *file, \ - int line, const char *func, const char *fmt, va_list ap); - -TP_TRACELOG_CB_TEMPLATE(TRACE_EMERG); -TP_TRACELOG_CB_TEMPLATE(TRACE_ALERT); -TP_TRACELOG_CB_TEMPLATE(TRACE_CRIT); -TP_TRACELOG_CB_TEMPLATE(TRACE_ERR); -TP_TRACELOG_CB_TEMPLATE(TRACE_WARNING); -TP_TRACELOG_CB_TEMPLATE(TRACE_NOTICE); -TP_TRACELOG_CB_TEMPLATE(TRACE_INFO); -TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_SYSTEM); -TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_PROGRAM); -TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_PROCESS); -TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_MODULE); -TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_UNIT); -TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_FUNCTION); -TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_LINE); -TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG); + int line, const char *func, const char *fmt, \ + va_list ap) \ + __attribute__ ((format(printf, 4, 0))); + +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_EMERG); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_ALERT); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_CRIT); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_ERR); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_WARNING); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_NOTICE); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_INFO); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_SYSTEM); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROGRAM); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROCESS); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_MODULE); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_UNIT); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_FUNCTION); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_LINE); +TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG); #undef TP_TRACELOG_CB_TEMPLATE #define tracelog(level, fmt, ...) \ do { \ - LTTNG_STAP_PROBEV(tracepoint_lttng_ust_tracelog, level, ## __VA_ARGS__); \ - if (caa_unlikely(__tracepoint_lttng_ust_tracelog___##level.state)) \ + LTTNG_UST_STAP_PROBEV(tracepoint_lttng_ust_tracelog, level, ## __VA_ARGS__); \ + if (caa_unlikely(lttng_ust_tracepoint_lttng_ust_tracelog___##level.state)) \ _lttng_ust_tracelog_##level(__FILE__, __LINE__, __func__, \ fmt, ## __VA_ARGS__); \ } while (0) #define vtracelog(level, fmt, ap) \ do { \ - if (caa_unlikely(__tracepoint_lttng_ust_tracelog___##level.state)) \ + if (caa_unlikely(lttng_ust_tracepoint_lttng_ust_tracelog___##level.state)) \ _lttng_ust_vtracelog_##level(__FILE__, __LINE__, __func__, \ fmt, ap); \ } while (0)