Move to kernel style SPDX license identifiers
[lttng-ust.git] / liblttng-ust / tracelog.c
1 /*
2 * SPDX-License-Identifier: MIT
3 *
4 * Copyright (C) 2013-2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 */
6
7 #define _LGPL_SOURCE
8 #include <stdio.h>
9 #include <helper.h>
10
11 #define TRACEPOINT_CREATE_PROBES
12 #define TRACEPOINT_DEFINE
13 #include "lttng-ust-tracelog-provider.h"
14
15 #define TRACELOG_CB(level) \
16 static inline __attribute__((always_inline)) \
17 void __lttng_ust_vtracelog_##level(const char *file, \
18 int line, const char *func, \
19 const char *fmt, va_list ap) \
20 { \
21 char *msg; \
22 const int len = vasprintf(&msg, fmt, ap); \
23 \
24 /* len does not include the final \0 */ \
25 if (len < 0) \
26 goto end; \
27 __tracepoint_cb_lttng_ust_tracelog___##level(file, \
28 line, func, msg, len, \
29 LTTNG_UST_CALLER_IP()); \
30 free(msg); \
31 end: \
32 return; \
33 } \
34 \
35 void _lttng_ust_vtracelog_##level(const char *file, \
36 int line, const char *func, \
37 const char *fmt, va_list ap) \
38 { \
39 __lttng_ust_vtracelog_##level(file, line, func, fmt, ap); \
40 } \
41 \
42 void _lttng_ust_tracelog_##level(const char *file, \
43 int line, const char *func, \
44 const char *fmt, ...) \
45 { \
46 va_list ap; \
47 \
48 va_start(ap, fmt); \
49 __lttng_ust_vtracelog_##level(file, line, func, fmt, ap); \
50 va_end(ap); \
51 }
52
53 TRACELOG_CB(TRACE_EMERG)
54 TRACELOG_CB(TRACE_ALERT)
55 TRACELOG_CB(TRACE_CRIT)
56 TRACELOG_CB(TRACE_ERR)
57 TRACELOG_CB(TRACE_WARNING)
58 TRACELOG_CB(TRACE_NOTICE)
59 TRACELOG_CB(TRACE_INFO)
60 TRACELOG_CB(TRACE_DEBUG_SYSTEM)
61 TRACELOG_CB(TRACE_DEBUG_PROGRAM)
62 TRACELOG_CB(TRACE_DEBUG_PROCESS)
63 TRACELOG_CB(TRACE_DEBUG_MODULE)
64 TRACELOG_CB(TRACE_DEBUG_UNIT)
65 TRACELOG_CB(TRACE_DEBUG_FUNCTION)
66 TRACELOG_CB(TRACE_DEBUG_LINE)
67 TRACELOG_CB(TRACE_DEBUG)
This page took 0.030026 seconds and 4 git commands to generate.