Commit | Line | Data |
---|---|---|
641c659a | 1 | /* |
c0c0989a | 2 | * SPDX-License-Identifier: MIT |
641c659a | 3 | * |
c0c0989a | 4 | * Copyright (C) 2013-2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
641c659a MD |
5 | */ |
6 | ||
641c659a MD |
7 | #define _LGPL_SOURCE |
8 | #include <stdio.h> | |
864a1eda | 9 | #include <ust-helper.h> |
641c659a MD |
10 | |
11 | #define TRACEPOINT_CREATE_PROBES | |
12 | #define TRACEPOINT_DEFINE | |
13 | #include "lttng-ust-tracef-provider.h" | |
14 | ||
b1d36dce | 15 | static inline __attribute__((always_inline, format(printf, 1, 0))) |
cfd56ee1 | 16 | void __lttng_ust_vtracef(const char *fmt, va_list ap) |
641c659a | 17 | { |
641c659a | 18 | char *msg; |
cfd56ee1 | 19 | const int len = vasprintf(&msg, fmt, ap); |
641c659a | 20 | |
641c659a MD |
21 | /* len does not include the final \0 */ |
22 | if (len < 0) | |
23 | goto end; | |
5dadb547 | 24 | __tracepoint_cb_lttng_ust_tracef___event(msg, len, |
171fcc6f | 25 | LTTNG_UST_CALLER_IP()); |
641c659a MD |
26 | free(msg); |
27 | end: | |
cfd56ee1 MRB |
28 | return; |
29 | } | |
30 | ||
b1d36dce MJ |
31 | __attribute__((format(printf, 1, 0))) |
32 | void _lttng_ust_vtracef(const char *fmt, va_list ap); | |
cfd56ee1 MRB |
33 | void _lttng_ust_vtracef(const char *fmt, va_list ap) |
34 | { | |
35 | __lttng_ust_vtracef(fmt, ap); | |
36 | } | |
37 | ||
b1d36dce MJ |
38 | __attribute__((format(printf, 1, 2))) |
39 | void _lttng_ust_tracef(const char *fmt, ...); | |
cfd56ee1 MRB |
40 | void _lttng_ust_tracef(const char *fmt, ...) |
41 | { | |
42 | va_list ap; | |
43 | ||
44 | va_start(ap, fmt); | |
45 | __lttng_ust_vtracef(fmt, ap); | |
641c659a MD |
46 | va_end(ap); |
47 | } |