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 MD |
16 | #define TP_TRACELOG_CB_TEMPLATE(level) \ |
17 | extern void _lttng_ust_tracelog_##level(const char *file, \ | |
4199ddc7 MJ |
18 | int line, const char *func, const char *fmt, ...) \ |
19 | __attribute__ ((format(printf, 4, 5))); \ | |
20 | \ | |
49faeca7 | 21 | extern void _lttng_ust_vtracelog_##level(const char *file, \ |
4199ddc7 MJ |
22 | int line, const char *func, const char *fmt, \ |
23 | va_list ap) \ | |
24 | __attribute__ ((format(printf, 4, 0))); | |
0cb03c85 | 25 | |
612e9ce4 MJ |
26 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_EMERG); |
27 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_ALERT); | |
28 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_CRIT); | |
29 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_ERR); | |
30 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_WARNING); | |
31 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_NOTICE); | |
32 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_INFO); | |
33 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_SYSTEM); | |
34 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROGRAM); | |
35 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROCESS); | |
36 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_MODULE); | |
37 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_UNIT); | |
38 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_FUNCTION); | |
39 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_LINE); | |
40 | TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG); | |
0cb03c85 MD |
41 | |
42 | #undef TP_TRACELOG_CB_TEMPLATE | |
43 | ||
44 | #define tracelog(level, fmt, ...) \ | |
45 | do { \ | |
b88f9167 | 46 | LTTNG_UST_STAP_PROBEV(tracepoint_lttng_ust_tracelog, level, ## __VA_ARGS__); \ |
0274f7f2 | 47 | if (caa_unlikely(lttng_ust_tracepoint_lttng_ust_tracelog___##level.state)) \ |
0cb03c85 | 48 | _lttng_ust_tracelog_##level(__FILE__, __LINE__, __func__, \ |
49faeca7 | 49 | fmt, ## __VA_ARGS__); \ |
0cb03c85 MD |
50 | } while (0) |
51 | ||
bd9bb3c7 MRB |
52 | #define vtracelog(level, fmt, ap) \ |
53 | do { \ | |
0274f7f2 | 54 | if (caa_unlikely(lttng_ust_tracepoint_lttng_ust_tracelog___##level.state)) \ |
49faeca7 MD |
55 | _lttng_ust_vtracelog_##level(__FILE__, __LINE__, __func__, \ |
56 | fmt, ap); \ | |
bd9bb3c7 MRB |
57 | } while (0) |
58 | ||
0cb03c85 MD |
59 | #ifdef __cplusplus |
60 | } | |
61 | #endif | |
62 | ||
63 | #endif /* _LTTNG_UST_TRACELOG_H */ |