diff options
Diffstat (limited to 'tools/perf/lib/core.c')
| -rw-r--r-- | tools/perf/lib/core.c | 37 | 
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/perf/lib/core.c b/tools/perf/lib/core.c new file mode 100644 index 000000000000..d0b9ae422b9f --- /dev/null +++ b/tools/perf/lib/core.c @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#define __printf(a, b)  __attribute__((format(printf, a, b))) + +#include <stdio.h> +#include <stdarg.h> +#include <unistd.h> +#include <perf/core.h> +#include <internal/lib.h> +#include "internal.h" + +static int __base_pr(enum libperf_print_level level, const char *format, +		     va_list args) +{ +	return vfprintf(stderr, format, args); +} + +static libperf_print_fn_t __libperf_pr = __base_pr; + +__printf(2, 3) +void libperf_print(enum libperf_print_level level, const char *format, ...) +{ +	va_list args; + +	if (!__libperf_pr) +		return; + +	va_start(args, format); +	__libperf_pr(level, format, args); +	va_end(args); +} + +void libperf_init(libperf_print_fn_t fn) +{ +	page_size = sysconf(_SC_PAGE_SIZE); +	__libperf_pr = fn; +}  |