core.c (792B)
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 13static 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 19static libperf_print_fn_t __libperf_pr = __base_pr; 20 21__printf(2, 3) 22void 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 34void libperf_init(libperf_print_fn_t fn) 35{ 36 page_size = sysconf(_SC_PAGE_SIZE); 37 __libperf_pr = fn; 38}