#ifndef __KERNEL_PRINTK__
#define __KERNEL_PRINTK__

#include <common.h>
#include <linux/compiler.h>
#include <linux/compat.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

#ifndef CONFIG_LOGLEVEL
#define CONFIG_LOGLEVEL 2
#endif

/*
 * 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

#endif
