xref: /OK3568_Linux_fs/u-boot/include/linux/printk.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef __KERNEL_PRINTK__
2*4882a593Smuzhiyun #define __KERNEL_PRINTK__
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #include <stdio.h>
5*4882a593Smuzhiyun #include <linux/compiler.h>
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #define KERN_EMERG
8*4882a593Smuzhiyun #define KERN_ALERT
9*4882a593Smuzhiyun #define KERN_CRIT
10*4882a593Smuzhiyun #define KERN_ERR
11*4882a593Smuzhiyun #define KERN_WARNING
12*4882a593Smuzhiyun #define KERN_NOTICE
13*4882a593Smuzhiyun #define KERN_INFO
14*4882a593Smuzhiyun #define KERN_DEBUG
15*4882a593Smuzhiyun #define KERN_CONT
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #define printk(fmt, ...) \
18*4882a593Smuzhiyun 	printf(fmt, ##__VA_ARGS__)
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun /*
21*4882a593Smuzhiyun  * Dummy printk for disabled debugging statements to use whilst maintaining
22*4882a593Smuzhiyun  * gcc's format checking.
23*4882a593Smuzhiyun  */
24*4882a593Smuzhiyun #define no_printk(fmt, ...)				\
25*4882a593Smuzhiyun ({							\
26*4882a593Smuzhiyun 	if (0)						\
27*4882a593Smuzhiyun 		printk(fmt, ##__VA_ARGS__);		\
28*4882a593Smuzhiyun 	0;						\
29*4882a593Smuzhiyun })
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #define __printk(level, fmt, ...)					\
32*4882a593Smuzhiyun ({									\
33*4882a593Smuzhiyun 	level < CONFIG_LOGLEVEL ? printk(fmt, ##__VA_ARGS__) : 0;	\
34*4882a593Smuzhiyun })
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun #ifndef pr_fmt
37*4882a593Smuzhiyun #define pr_fmt(fmt) fmt
38*4882a593Smuzhiyun #endif
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun #define pr_emerg(fmt, ...) \
41*4882a593Smuzhiyun 	__printk(0, pr_fmt(fmt), ##__VA_ARGS__)
42*4882a593Smuzhiyun #define pr_alert(fmt, ...) \
43*4882a593Smuzhiyun 	__printk(1, pr_fmt(fmt), ##__VA_ARGS__)
44*4882a593Smuzhiyun #define pr_crit(fmt, ...) \
45*4882a593Smuzhiyun 	__printk(2, pr_fmt(fmt), ##__VA_ARGS__)
46*4882a593Smuzhiyun #define pr_err(fmt, ...) \
47*4882a593Smuzhiyun 	__printk(3, pr_fmt(fmt), ##__VA_ARGS__)
48*4882a593Smuzhiyun #define pr_warning(fmt, ...) \
49*4882a593Smuzhiyun 	__printk(4, pr_fmt(fmt), ##__VA_ARGS__)
50*4882a593Smuzhiyun #define pr_warn pr_warning
51*4882a593Smuzhiyun #define pr_notice(fmt, ...) \
52*4882a593Smuzhiyun 	__printk(5, pr_fmt(fmt), ##__VA_ARGS__)
53*4882a593Smuzhiyun #define pr_info(fmt, ...) \
54*4882a593Smuzhiyun 	__printk(6, pr_fmt(fmt), ##__VA_ARGS__)
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun #define pr_cont(fmt, ...) \
57*4882a593Smuzhiyun 	printk(fmt, ##__VA_ARGS__)
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun /* pr_devel() should produce zero code unless DEBUG is defined */
60*4882a593Smuzhiyun #ifdef DEBUG
61*4882a593Smuzhiyun #define pr_devel(fmt, ...) \
62*4882a593Smuzhiyun 	__printk(7, pr_fmt(fmt), ##__VA_ARGS__)
63*4882a593Smuzhiyun #else
64*4882a593Smuzhiyun #define pr_devel(fmt, ...) \
65*4882a593Smuzhiyun 	no_printk(pr_fmt(fmt), ##__VA_ARGS__)
66*4882a593Smuzhiyun #endif
67*4882a593Smuzhiyun 
68*4882a593Smuzhiyun #ifdef DEBUG
69*4882a593Smuzhiyun #define pr_debug(fmt, ...) \
70*4882a593Smuzhiyun 	__printk(7, pr_fmt(fmt), ##__VA_ARGS__)
71*4882a593Smuzhiyun #else
72*4882a593Smuzhiyun #define pr_debug(fmt, ...) \
73*4882a593Smuzhiyun 	no_printk(pr_fmt(fmt), ##__VA_ARGS__)
74*4882a593Smuzhiyun #endif
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun #define printk_once(fmt, ...) \
77*4882a593Smuzhiyun 	printk(fmt, ##__VA_ARGS__)
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun #endif
80