Commit | Line | Data |
---|---|---|
0cb03c85 | 1 | /* |
c0c0989a | 2 | * SPDX-License-Identifier: MIT |
0cb03c85 | 3 | * |
c0c0989a | 4 | * Copyright (C) 2013-2015 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
0cb03c85 MD |
5 | */ |
6 | ||
c0c0989a MJ |
7 | #ifndef _LTTNG_UST_TRACELOG_H |
8 | #define _LTTNG_UST_TRACELOG_H | |
9 | ||
b15c4010 | 10 | #include <lttng/tp/lttng-ust-tracelog.h> |
0cb03c85 MD |
11 | |
12 | #ifdef __cplusplus | |
13 | extern "C" { | |
14 | #endif | |
15 | ||
49faeca7 | 16 | #define TP_TRACELOG_CB_TEMPLATE(level) \ |
b1d36dce | 17 | __attribute__ ((format(printf, 4, 5))) \ |
49faeca7 MD |
18 | extern void _lttng_ust_tracelog_##level(const char *file, \ |
19 | int line, const char *func, const char *fmt, ...); \ | |
b1d36dce | 20 | __attribute__ ((format(printf, 4, 0))) \ |
49faeca7 MD |
21 | extern void _lttng_ust_vtracelog_##level(const char *file, \ |
22 | int line, const char *func, const char *fmt, va_list ap); | |
0cb03c85 | 23 | |
c4d667ed MD |
24 | TP_TRACELOG_CB_TEMPLATE(TRACE_EMERG); |
25 | TP_TRACELOG_CB_TEMPLATE(TRACE_ALERT); | |
26 | TP_TRACELOG_CB_TEMPLATE(TRACE_CRIT); | |
27 | TP_TRACELOG_CB_TEMPLATE(TRACE_ERR); | |
28 | TP_TRACELOG_CB_TEMPLATE(TRACE_WARNING); | |
29 | TP_TRACELOG_CB_TEMPLATE(TRACE_NOTICE); | |
30 | TP_TRACELOG_CB_TEMPLATE(TRACE_INFO); | |
31 | TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_SYSTEM); | |
32 | TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_PROGRAM); | |
33 | TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_PROCESS); | |
34 | TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_MODULE); | |
35 | TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_UNIT); | |
36 | TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_FUNCTION); | |
37 | TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG_LINE); | |
38 | TP_TRACELOG_CB_TEMPLATE(TRACE_DEBUG); | |
0cb03c85 MD |
39 | |
40 | #undef TP_TRACELOG_CB_TEMPLATE | |
41 | ||
42 | #define tracelog(level, fmt, ...) \ | |
43 | do { \ | |
afeea86f | 44 | LTTNG_STAP_PROBEV(tracepoint_lttng_ust_tracelog, level, ## __VA_ARGS__); \ |
c4d667ed | 45 | if (caa_unlikely(__tracepoint_lttng_ust_tracelog___##level.state)) \ |
0cb03c85 | 46 | _lttng_ust_tracelog_##level(__FILE__, __LINE__, __func__, \ |
49faeca7 | 47 | fmt, ## __VA_ARGS__); \ |
0cb03c85 MD |
48 | } while (0) |
49 | ||
bd9bb3c7 MRB |
50 | #define vtracelog(level, fmt, ap) \ |
51 | do { \ | |
52 | if (caa_unlikely(__tracepoint_lttng_ust_tracelog___##level.state)) \ | |
49faeca7 MD |
53 | _lttng_ust_vtracelog_##level(__FILE__, __LINE__, __func__, \ |
54 | fmt, ap); \ | |
bd9bb3c7 MRB |
55 | } while (0) |
56 | ||
0cb03c85 MD |
57 | #ifdef __cplusplus |
58 | } | |
59 | #endif | |
60 | ||
61 | #endif /* _LTTNG_UST_TRACELOG_H */ |