-#define TP_TRACELOG_CB_TEMPLATE(level) \
- extern void _lttng_ust_tracelog_##level(const char *file, \
- int line, const char *func, const char *fmt, ...)
-
-TP_TRACELOG_CB_TEMPLATE(emerg);
-TP_TRACELOG_CB_TEMPLATE(alert);
-TP_TRACELOG_CB_TEMPLATE(crit);
-TP_TRACELOG_CB_TEMPLATE(err);
-TP_TRACELOG_CB_TEMPLATE(warning);
-TP_TRACELOG_CB_TEMPLATE(notice);
-TP_TRACELOG_CB_TEMPLATE(info);
-TP_TRACELOG_CB_TEMPLATE(debug_system);
-TP_TRACELOG_CB_TEMPLATE(debug_program);
-TP_TRACELOG_CB_TEMPLATE(debug_process);
-TP_TRACELOG_CB_TEMPLATE(debug_module);
-TP_TRACELOG_CB_TEMPLATE(debug_unit);
-TP_TRACELOG_CB_TEMPLATE(debug_function);
-TP_TRACELOG_CB_TEMPLATE(debug_line);
-TP_TRACELOG_CB_TEMPLATE(debug);
+#define TP_TRACELOG_CB_TEMPLATE(level) \
+ extern void _lttng_ust_tracelog_##level(const char *file, \
+ 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) \
+ __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);