#ifndef _LINUX_BUG_H
#define _LINUX_BUG_H
#include <sys/types.h>
#include <sys/systm.h>
#include <linux/compiler.h>
#include <linux/build_bug.h>
#define BUG() \
do { \
panic("BUG at %s:%d", __FILE__, __LINE__); \
} while (0)
#ifndef DIAGNOSTIC
#define BUG_ON(x) ((void)(x))
#else
#define BUG_ON(x) KASSERT(!(x))
#endif
#define WARN(condition, fmt...) ({ \
int __ret = !!(condition); \
if (__ret) \
printf(fmt); \
unlikely(__ret); \
})
#define WARN_ONCE(condition, fmt...) ({ \
static int __warned; \
int __ret = !!(condition); \
if (__ret && !__warned) { \
printf(fmt); \
__warned = 1; \
} \
unlikely(__ret); \
})
#define WARN_RATELIMIT(condition, fmt...) WARN_ONCE(condition, ##fmt)
#define _WARN_STR(x) #x
#define WARN_ON(condition) ({ \
int __ret = !!(condition); \
if (__ret) \
printf("WARNING %s failed at %s:%d\n", \
_WARN_STR(condition), __FILE__, __LINE__); \
unlikely(__ret); \
})
#define WARN_ON_ONCE(condition) ({ \
static int __warned; \
int __ret = !!(condition); \
if (__ret && !__warned) { \
printf("WARNING %s failed at %s:%d\n", \
_WARN_STR(condition), __FILE__, __LINE__); \
__warned = 1; \
} \
unlikely(__ret); \
})
#endif