Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 
0003 #define __printf(a, b)  __attribute__((format(printf, a, b)))
0004 
0005 #include <stdio.h>
0006 #include <stdarg.h>
0007 #include <unistd.h>
0008 #include <linux/compiler.h>
0009 #include <perf/core.h>
0010 #include <internal/lib.h>
0011 #include "internal.h"
0012 
0013 static int __base_pr(enum libperf_print_level level __maybe_unused, const char *format,
0014              va_list args)
0015 {
0016     return vfprintf(stderr, format, args);
0017 }
0018 
0019 static libperf_print_fn_t __libperf_pr = __base_pr;
0020 
0021 __printf(2, 3)
0022 void libperf_print(enum libperf_print_level level, const char *format, ...)
0023 {
0024     va_list args;
0025 
0026     if (!__libperf_pr)
0027         return;
0028 
0029     va_start(args, format);
0030     __libperf_pr(level, format, args);
0031     va_end(args);
0032 }
0033 
0034 void libperf_init(libperf_print_fn_t fn)
0035 {
0036     page_size = sysconf(_SC_PAGE_SIZE);
0037     __libperf_pr = fn;
0038 }