Commit | Line | Data |
---|---|---|
1c196845 MJ |
1 | // SPDX-FileCopyrightText: 2013-2015 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
2 | // | |
3 | // SPDX-License-Identifier: MIT | |
0cb03c85 | 4 | |
c0c0989a MJ |
5 | #ifndef _LTTNG_UST_TRACELOG_H |
6 | #define _LTTNG_UST_TRACELOG_H | |
7 | ||
1698631b | 8 | #include <lttng/ust-api-compat.h> |
b15c4010 | 9 | #include <lttng/tp/lttng-ust-tracelog.h> |
0cb03c85 MD |
10 | |
11 | #ifdef __cplusplus | |
12 | extern "C" { | |
13 | #endif | |
14 | ||
1698631b MJ |
15 | #define LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(level) \ |
16 | extern void lttng_ust__tracelog_##level(const char *file, \ | |
4199ddc7 MJ |
17 | int line, const char *func, const char *fmt, ...) \ |
18 | __attribute__ ((format(printf, 4, 5))); \ | |
19 | \ | |
1698631b | 20 | extern void lttng_ust__vtracelog_##level(const char *file, \ |
4199ddc7 MJ |
21 | int line, const char *func, const char *fmt, \ |
22 | va_list ap) \ | |
23 | __attribute__ ((format(printf, 4, 0))); | |
0cb03c85 | 24 | |
1698631b MJ |
25 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_EMERG); |
26 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_ALERT); | |
27 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_CRIT); | |
28 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_ERR); | |
29 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_WARNING); | |
30 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_NOTICE); | |
31 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_INFO); | |
32 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_SYSTEM); | |
33 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROGRAM); | |
34 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROCESS); | |
35 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_MODULE); | |
36 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_UNIT); | |
37 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_FUNCTION); | |
38 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_LINE); | |
39 | LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG); | |
40 | ||
41 | #undef LTTNG_UST_TP_TRACELOG_CB_TEMPLATE | |
42 | ||
43 | #define lttng_ust_tracelog(level, fmt, ...) \ | |
0cb03c85 | 44 | do { \ |
b88f9167 | 45 | LTTNG_UST_STAP_PROBEV(tracepoint_lttng_ust_tracelog, level, ## __VA_ARGS__); \ |
0274f7f2 | 46 | if (caa_unlikely(lttng_ust_tracepoint_lttng_ust_tracelog___##level.state)) \ |
1698631b | 47 | lttng_ust__tracelog_##level(__FILE__, __LINE__, __func__, \ |
49faeca7 | 48 | fmt, ## __VA_ARGS__); \ |
0cb03c85 MD |
49 | } while (0) |
50 | ||
1698631b | 51 | #define lttng_ust_vtracelog(level, fmt, ap) \ |
bd9bb3c7 | 52 | do { \ |
0274f7f2 | 53 | if (caa_unlikely(lttng_ust_tracepoint_lttng_ust_tracelog___##level.state)) \ |
1698631b | 54 | lttng_ust__vtracelog_##level(__FILE__, __LINE__, __func__, \ |
49faeca7 | 55 | fmt, ap); \ |
bd9bb3c7 MRB |
56 | } while (0) |
57 | ||
1698631b MJ |
58 | #if LTTNG_UST_COMPAT_API(0) |
59 | #define TP_TRACELOG_CB_TEMPLATE LTTNG_UST_TP_TRACELOG_CB_TEMPLATE | |
60 | #define tracelog lttng_ust_tracelog | |
1698631b MJ |
61 | #endif |
62 | ||
0cb03c85 MD |
63 | #ifdef __cplusplus |
64 | } | |
65 | #endif | |
66 | ||
67 | #endif /* _LTTNG_UST_TRACELOG_H */ |