1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __LIBPERF_INTERNAL_H 3*4882a593Smuzhiyun #define __LIBPERF_INTERNAL_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <perf/core.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun void libperf_print(enum libperf_print_level level, 8*4882a593Smuzhiyun const char *format, ...) 9*4882a593Smuzhiyun __attribute__((format(printf, 2, 3))); 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define __pr(level, fmt, ...) \ 12*4882a593Smuzhiyun do { \ 13*4882a593Smuzhiyun libperf_print(level, "libperf: " fmt, ##__VA_ARGS__); \ 14*4882a593Smuzhiyun } while (0) 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #define pr_err(fmt, ...) __pr(LIBPERF_ERR, fmt, ##__VA_ARGS__) 17*4882a593Smuzhiyun #define pr_warning(fmt, ...) __pr(LIBPERF_WARN, fmt, ##__VA_ARGS__) 18*4882a593Smuzhiyun #define pr_info(fmt, ...) __pr(LIBPERF_INFO, fmt, ##__VA_ARGS__) 19*4882a593Smuzhiyun #define pr_debug(fmt, ...) __pr(LIBPERF_DEBUG, fmt, ##__VA_ARGS__) 20*4882a593Smuzhiyun #define pr_debug2(fmt, ...) __pr(LIBPERF_DEBUG2, fmt, ##__VA_ARGS__) 21*4882a593Smuzhiyun #define pr_debug3(fmt, ...) __pr(LIBPERF_DEBUG3, fmt, ##__VA_ARGS__) 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #endif /* __LIBPERF_INTERNAL_H */ 24