X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ust%2Ftracef.c;h=92911e1dac2f39a1de7e40c7413170b38dc237bd;hb=HEAD;hp=3c4ce490511fa3630bb114e6b60d04c193a803be;hpb=6339062a5bbe886493d0691d13e28e37a7206362;p=lttng-ust.git diff --git a/src/lib/lttng-ust/tracef.c b/src/lib/lttng-ust/tracef.c index 3c4ce490..92911e1d 100644 --- a/src/lib/lttng-ust/tracef.c +++ b/src/lib/lttng-ust/tracef.c @@ -7,49 +7,31 @@ #define _LGPL_SOURCE #include #include "common/macros.h" +#include "common/tracer.h" -#define TRACEPOINT_CREATE_PROBES -#define TRACEPOINT_DEFINE -#include "lttng-ust-tracef-provider.h" - -static inline -void __lttng_ust_vtracef(const char *fmt, va_list ap) - __attribute__((always_inline, format(printf, 1, 0))); -static inline -void __lttng_ust_vtracef(const char *fmt, va_list ap) -{ - char *msg; - const int len = vasprintf(&msg, fmt, ap); +/* The tracepoint definition is public, but the provider definition is hidden. */ +#define LTTNG_UST_TRACEPOINT_PROVIDER_HIDDEN_DEFINITION - /* len does not include the final \0 */ - if (len < 0) - goto end; - __tracepoint_cb_lttng_ust_tracef___event(msg, len, - LTTNG_UST_CALLER_IP()); - free(msg); -end: - return; -} +#define LTTNG_UST_TRACEPOINT_CREATE_PROBES +#define LTTNG_UST_TRACEPOINT_DEFINE +#include "lttng-ust-tracef-provider.h" -/* - * FIXME: We should include for the declarations here, but it - * fails with tracepoint magic above my paygrade. - */ +#include "tracelog-internal.h" -void _lttng_ust_vtracef(const char *fmt, va_list ap) +void lttng_ust__vtracef(const char *fmt, va_list ap) __attribute__((format(printf, 1, 0))); -void _lttng_ust_vtracef(const char *fmt, va_list ap) +void lttng_ust__vtracef(const char *fmt, va_list ap) { - __lttng_ust_vtracef(fmt, ap); + LTTNG_UST_TRACELOG_VALIST(fmt, ap, + lttng_ust_tracepoint_cb_lttng_ust_tracef___event, + msg, len, LTTNG_UST_CALLER_IP()); } -void _lttng_ust_tracef(const char *fmt, ...) +void lttng_ust__tracef(const char *fmt, ...) __attribute__((format(printf, 1, 2))); -void _lttng_ust_tracef(const char *fmt, ...) +void lttng_ust__tracef(const char *fmt, ...) { - va_list ap; - - va_start(ap, fmt); - __lttng_ust_vtracef(fmt, ap); - va_end(ap); + LTTNG_UST_TRACELOG_VARARG(fmt, + lttng_ust_tracepoint_cb_lttng_ust_tracef___event, + msg, len, LTTNG_UST_CALLER_IP()); }