Merge tag 'ceph-for-5.4-rc1' of git://github.com/ceph/ceph-client
[linux-2.6-microblaze.git] / tools / perf / lib / core.c
1 // SPDX-License-Identifier: GPL-2.0-only
2
3 #define __printf(a, b)  __attribute__((format(printf, a, b)))
4
5 #include <stdio.h>
6 #include <stdarg.h>
7 #include <perf/core.h>
8 #include "internal.h"
9
10 static int __base_pr(enum libperf_print_level level, const char *format,
11                      va_list args)
12 {
13         return vfprintf(stderr, format, args);
14 }
15
16 static libperf_print_fn_t __libperf_pr = __base_pr;
17
18 void libperf_set_print(libperf_print_fn_t fn)
19 {
20         __libperf_pr = fn;
21 }
22
23 __printf(2, 3)
24 void libperf_print(enum libperf_print_level level, const char *format, ...)
25 {
26         va_list args;
27
28         if (!__libperf_pr)
29                 return;
30
31         va_start(args, format);
32         __libperf_pr(level, format, args);
33         va_end(args);
34 }