include: implement REUSE with SPDX identifiers
[lttng-ust.git] / include / lttng / tracelog.h
... / ...
CommitLineData
1// SPDX-FileCopyrightText: 2013-2015 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2//
3// SPDX-License-Identifier: MIT
4
5#ifndef _LTTNG_UST_TRACELOG_H
6#define _LTTNG_UST_TRACELOG_H
7
8#include <lttng/ust-api-compat.h>
9#include <lttng/tp/lttng-ust-tracelog.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#define LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(level) \
16 extern void lttng_ust__tracelog_##level(const char *file, \
17 int line, const char *func, const char *fmt, ...) \
18 __attribute__ ((format(printf, 4, 5))); \
19 \
20 extern void lttng_ust__vtracelog_##level(const char *file, \
21 int line, const char *func, const char *fmt, \
22 va_list ap) \
23 __attribute__ ((format(printf, 4, 0)));
24
25LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_EMERG);
26LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_ALERT);
27LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_CRIT);
28LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_ERR);
29LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_WARNING);
30LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_NOTICE);
31LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_INFO);
32LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_SYSTEM);
33LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROGRAM);
34LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_PROCESS);
35LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_MODULE);
36LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_UNIT);
37LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_FUNCTION);
38LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG_LINE);
39LTTNG_UST_TP_TRACELOG_CB_TEMPLATE(LTTNG_UST_TRACEPOINT_LOGLEVEL_DEBUG);
40
41#undef LTTNG_UST_TP_TRACELOG_CB_TEMPLATE
42
43#define lttng_ust_tracelog(level, fmt, ...) \
44 do { \
45 LTTNG_UST_STAP_PROBEV(tracepoint_lttng_ust_tracelog, level, ## __VA_ARGS__); \
46 if (caa_unlikely(lttng_ust_tracepoint_lttng_ust_tracelog___##level.state)) \
47 lttng_ust__tracelog_##level(__FILE__, __LINE__, __func__, \
48 fmt, ## __VA_ARGS__); \
49 } while (0)
50
51#define lttng_ust_vtracelog(level, fmt, ap) \
52 do { \
53 if (caa_unlikely(lttng_ust_tracepoint_lttng_ust_tracelog___##level.state)) \
54 lttng_ust__vtracelog_##level(__FILE__, __LINE__, __func__, \
55 fmt, ap); \
56 } while (0)
57
58#if LTTNG_UST_COMPAT_API(0)
59#define TP_TRACELOG_CB_TEMPLATE LTTNG_UST_TP_TRACELOG_CB_TEMPLATE
60#define tracelog lttng_ust_tracelog
61#endif
62
63#ifdef __cplusplus
64}
65#endif
66
67#endif /* _LTTNG_UST_TRACELOG_H */
This page took 0.022584 seconds and 4 git commands to generate.