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