| #ifndef __KERNEL_PRINTK__ |
| #define __KERNEL_PRINTK__ |
| |
| #include <stdio.h> |
| #include <linux/compiler.h> |
| |
| #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 |