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 | ||
4199ddc7 MJ |
15 | static inline |
16 | void __lttng_ust_vtracef(const char *fmt, va_list ap) | |
17 | __attribute__((always_inline, format(printf, 1, 0))); | |
18 | static inline | |
cfd56ee1 | 19 | void __lttng_ust_vtracef(const char *fmt, va_list ap) |
641c659a | 20 | { |
641c659a | 21 | char *msg; |
cfd56ee1 | 22 | const int len = vasprintf(&msg, fmt, ap); |
641c659a | 23 | |
641c659a MD |
24 | /* len does not include the final \0 */ |
25 | if (len < 0) | |
26 | goto end; | |
5dadb547 | 27 | __tracepoint_cb_lttng_ust_tracef___event(msg, len, |
171fcc6f | 28 | LTTNG_UST_CALLER_IP()); |
641c659a MD |
29 | free(msg); |
30 | end: | |
cfd56ee1 MRB |
31 | return; |
32 | } | |
33 | ||
4199ddc7 MJ |
34 | void _lttng_ust_vtracef(const char *fmt, va_list ap) |
35 | __attribute__((format(printf, 1, 0))); | |
cfd56ee1 MRB |
36 | void _lttng_ust_vtracef(const char *fmt, va_list ap) |
37 | { | |
38 | __lttng_ust_vtracef(fmt, ap); | |
39 | } | |
40 | ||
4199ddc7 MJ |
41 | void _lttng_ust_tracef(const char *fmt, ...) |
42 | __attribute__((format(printf, 1, 2))); | |
cfd56ee1 MRB |
43 | void _lttng_ust_tracef(const char *fmt, ...) |
44 | { | |
45 | va_list ap; | |
46 | ||
47 | va_start(ap, fmt); | |
48 | __lttng_ust_vtracef(fmt, ap); | |
641c659a MD |
49 | va_end(ap); |
50 | } |