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