Fix: liblttng-ust-ctl: missing ring buffer and counter clients init/exit symbols
[lttng-ust.git] / liblttng-ust / tracef.c
CommitLineData
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 15static inline __attribute__((always_inline, format(printf, 1, 0)))
cfd56ee1 16void __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);
27end:
cfd56ee1
MRB
28 return;
29}
30
b1d36dce
MJ
31__attribute__((format(printf, 1, 0)))
32void _lttng_ust_vtracef(const char *fmt, va_list ap);
cfd56ee1
MRB
33void _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)))
39void _lttng_ust_tracef(const char *fmt, ...);
cfd56ee1
MRB
40void _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}
This page took 0.029769 seconds and 4 git commands to generate.