Fix: tls-compat with hidden ring buffer context
[lttng-ust.git] / liblttng-ust / tracelog.c
CommitLineData
0cb03c85 1/*
c0c0989a 2 * SPDX-License-Identifier: MIT
0cb03c85 3 *
c0c0989a 4 * Copyright (C) 2013-2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
0cb03c85
MD
5 */
6
0cb03c85
MD
7#define _LGPL_SOURCE
8#include <stdio.h>
864a1eda 9#include <ust-helper.h>
0cb03c85
MD
10
11#define TRACEPOINT_CREATE_PROBES
12#define TRACEPOINT_DEFINE
13#include "lttng-ust-tracelog-provider.h"
14
15#define TRACELOG_CB(level) \
b1d36dce 16 static inline __attribute__((always_inline, format(printf, 4, 0))) \
bd9bb3c7 17 void __lttng_ust_vtracelog_##level(const char *file, \
0cb03c85 18 int line, const char *func, \
bd9bb3c7 19 const char *fmt, va_list ap) \
0cb03c85 20 { \
0cb03c85 21 char *msg; \
bd9bb3c7 22 const int len = vasprintf(&msg, fmt, ap); \
0cb03c85 23 \
0cb03c85
MD
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, \
171fcc6f 29 LTTNG_UST_CALLER_IP()); \
0cb03c85
MD
30 free(msg); \
31 end: \
bd9bb3c7
MRB
32 return; \
33 } \
34 \
b1d36dce 35 __attribute__ ((format(printf, 4, 0))) \
bd9bb3c7
MRB
36 void _lttng_ust_vtracelog_##level(const char *file, \
37 int line, const char *func, \
38 const char *fmt, va_list ap) \
39 { \
40 __lttng_ust_vtracelog_##level(file, line, func, fmt, ap); \
41 } \
42 \
b1d36dce 43 __attribute__ ((format(printf, 4, 5))) \
bd9bb3c7
MRB
44 void _lttng_ust_tracelog_##level(const char *file, \
45 int line, const char *func, \
46 const char *fmt, ...) \
47 { \
48 va_list ap; \
49 \
50 va_start(ap, fmt); \
51 __lttng_ust_vtracelog_##level(file, line, func, fmt, ap); \
0cb03c85
MD
52 va_end(ap); \
53 }
54
c4d667ed
MD
55TRACELOG_CB(TRACE_EMERG)
56TRACELOG_CB(TRACE_ALERT)
57TRACELOG_CB(TRACE_CRIT)
58TRACELOG_CB(TRACE_ERR)
59TRACELOG_CB(TRACE_WARNING)
60TRACELOG_CB(TRACE_NOTICE)
61TRACELOG_CB(TRACE_INFO)
62TRACELOG_CB(TRACE_DEBUG_SYSTEM)
63TRACELOG_CB(TRACE_DEBUG_PROGRAM)
64TRACELOG_CB(TRACE_DEBUG_PROCESS)
65TRACELOG_CB(TRACE_DEBUG_MODULE)
66TRACELOG_CB(TRACE_DEBUG_UNIT)
67TRACELOG_CB(TRACE_DEBUG_FUNCTION)
68TRACELOG_CB(TRACE_DEBUG_LINE)
69TRACELOG_CB(TRACE_DEBUG)
This page took 0.031108 seconds and 4 git commands to generate.