Home | History | Annotate | Download | only in linux
      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
     80