#ifndef __KERNEL_PRINTK__ #define __KERNEL_PRINTK__ #include #include #define KERN_EMERG #define KERN_ALERT #define KERN_CRIT #define KERN_ERR #define KERN_WARNING #define KERN_NOTICE #define KERN_INFO #define KERN_DEBUG #define KERN_CONT #define printk(fmt, ...) \ printf(fmt, ##__VA_ARGS__) /* * Dummy printk for disabled debugging statements to use whilst maintaining * gcc's format checking. */ #define no_printk(fmt, ...) \ ({ \ if (0) \ printk(fmt, ##__VA_ARGS__); \ 0; \ }) #define __printk(level, fmt, ...) \ ({ \ level < CONFIG_LOGLEVEL ? printk(fmt, ##__VA_ARGS__) : 0; \ }) #ifndef pr_fmt #define pr_fmt(fmt) fmt #endif #define pr_emerg(fmt, ...) \ __printk(0, pr_fmt(fmt), ##__VA_ARGS__) #define pr_alert(fmt, ...) \ __printk(1, pr_fmt(fmt), ##__VA_ARGS__) #define pr_crit(fmt, ...) \ __printk(2, pr_fmt(fmt), ##__VA_ARGS__) #define pr_err(fmt, ...) \ __printk(3, pr_fmt(fmt), ##__VA_ARGS__) #define pr_warning(fmt, ...) \ __printk(4, pr_fmt(fmt), ##__VA_ARGS__) #define pr_warn pr_warning #define pr_notice(fmt, ...) \ __printk(5, pr_fmt(fmt), ##__VA_ARGS__) #define pr_info(fmt, ...) \ __printk(6, pr_fmt(fmt), ##__VA_ARGS__) #define pr_cont(fmt, ...) \ printk(fmt, ##__VA_ARGS__) /* pr_devel() should produce zero code unless DEBUG is defined */ #ifdef DEBUG #define pr_devel(fmt, ...) \ __printk(7, pr_fmt(fmt), ##__VA_ARGS__) #else #define pr_devel(fmt, ...) \ no_printk(pr_fmt(fmt), ##__VA_ARGS__) #endif #ifdef DEBUG #define pr_debug(fmt, ...) \ __printk(7, pr_fmt(fmt), ##__VA_ARGS__) #else #define pr_debug(fmt, ...) \ no_printk(pr_fmt(fmt), ##__VA_ARGS__) #endif #define printk_once(fmt, ...) \ printk(fmt, ##__VA_ARGS__) #endif