Improve tracef/tracelog to use the stack for small strings
[lttng-ust.git] / src / lib / lttng-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 "common/macros.h"
10 #include "common/tracer.h"
11
12 /* The tracepoint definition is public, but the provider definition is hidden. */
13 #define LTTNG_UST_TRACEPOINT_PROVIDER_HIDDEN_DEFINITION
14
15 #define LTTNG_UST_TRACEPOINT_CREATE_PROBES
16 #define LTTNG_UST_TRACEPOINT_DEFINE
17 #include "lttng-ust-tracelog-provider.h"
18
19 #include "tracelog-internal.h"
20
21 #define LTTNG_UST_TRACELOG_CB(level) \
22 void lttng_ust__vtracelog_##level(const char *file, \
23 int line, const char *func, \
24 const char *fmt, va_list ap) \
25 __attribute__ ((format(printf, 4, 0))); \
26 \
27 void lttng_ust__vtracelog_##level(const char *file, \
28 int line, const char *func, \
29 const char *fmt, va_list ap); \
30 void lttng_ust__vtracelog_##level(const char *file, \
31 int line, const char *func, \
32 const char *fmt, va_list ap) \
33 { \
34 LTTNG_UST_TRACELOG_VALIST(fmt, ap, \
35 lttng_ust_tracepoint_cb_lttng_ust_tracelog___##level, \
36 file, line, func, msg, len, LTTNG_UST_CALLER_IP()); \
37 } \
38 \
39 void lttng_ust__tracelog_##level(const char *file, \
40 int line, const char *func, \
41 const char *fmt, ...) \
42 __attribute__ ((format(printf, 4, 5))); \
43 \
44 void lttng_ust__tracelog_##level(const char *file, \
45 int line, const char *func, \
46 const char *fmt, ...); \
47 void lttng_ust__tracelog_##level(const char *file, \
48 int line, const char *func, \
49 const char *fmt, ...) \
50 { \
51 LTTNG_UST_TRACELOG_VARARG(fmt, \
52 lttng_ust_tracepoint_cb_lttng_ust_tracelog___##level, \
53 file, line, func, msg, len, LTTNG_UST_CALLER_IP()); \
54 }
55
56 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_EMERG)
57 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_ALERT)
58 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_CRIT)
59 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_ERR)
60 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_WARNING)
61 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_NOTICE)
62 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_INFO)
63 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_SYSTEM)
64 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROGRAM)
65 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROCESS)
66 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_MODULE)
67 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_UNIT)
68 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_FUNCTION)
69 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_LINE)
70 LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG)
This page took 0.02945 seconds and 4 git commands to generate.