#ifndef __LINUX_PRINTK__
#define __LINUX_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
