Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/lib/perf/core.c
26282 views
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 <unistd.h>
8
#include <linux/compiler.h>
9
#include <perf/core.h>
10
#include <internal/lib.h>
11
#include "internal.h"
12
13
static int __base_pr(enum libperf_print_level level __maybe_unused, const char *format,
14
va_list args)
15
{
16
return vfprintf(stderr, format, args);
17
}
18
19
static libperf_print_fn_t __libperf_pr = __base_pr;
20
21
__printf(2, 3)
22
void libperf_print(enum libperf_print_level level, const char *format, ...)
23
{
24
va_list args;
25
26
if (!__libperf_pr)
27
return;
28
29
va_start(args, format);
30
__libperf_pr(level, format, args);
31
va_end(args);
32
}
33
34
void libperf_init(libperf_print_fn_t fn)
35
{
36
page_size = sysconf(_SC_PAGE_SIZE);
37
__libperf_pr = fn;
38
}
39
40