Improve tracef/tracelog to use the stack for small strings
[lttng-ust.git] / src / lib / lttng-ust / tracelog.c
... / ...
CommitLineData
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
56LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_EMERG)
57LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_ALERT)
58LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_CRIT)
59LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_ERR)
60LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_WARNING)
61LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_NOTICE)
62LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_INFO)
63LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_SYSTEM)
64LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROGRAM)
65LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROCESS)
66LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_MODULE)
67LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_UNIT)
68LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_FUNCTION)
69LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_LINE)
70LTTNG_UST_TRACELOG_CB(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG)
This page took 0.022274 seconds and 4 git commands to generate.