summaryrefslogtreecommitdiffstats
path: root/include/asm-generic
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.m@jp.panasonic.com>2015-01-29 11:14:06 +0900
committerSascha Hauer <s.hauer@pengutronix.de>2015-01-29 08:48:30 +0100
commit8960b0ff81875d569bfd58d185076dd6265ba42b (patch)
treee3d0a666cd90a806c16413985a8a54060c24758f /include/asm-generic
parenta07a472cac72d336574c438358bbf3c113b16fb5 (diff)
downloadbarebox-8960b0ff81875d569bfd58d185076dd6265ba42b.tar.gz
barebox-8960b0ff81875d569bfd58d185076dd6265ba42b.tar.xz
asm-generic/bug.h: move BUG(), BUG_ON(), WARN(), WARN_ON() macros
In Linux, these macros are defined in include/asm-generic/bug.h. To tidy up common.h, move BUG(), BUG_ON(), WARN(), WARN_ON() there. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/asm-generic')
-rw-r--r--include/asm-generic/bug.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
new file mode 100644
index 0000000000..8583d2425f
--- /dev/null
+++ b/include/asm-generic/bug.h
@@ -0,0 +1,37 @@
+#ifndef _ASM_GENERIC_BUG_H
+#define _ASM_GENERIC_BUG_H
+
+#include <linux/compiler.h>
+
+#define BUG() do { \
+ printf("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
+ panic("BUG!"); \
+} while (0)
+#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
+
+
+#define __WARN() do { \
+ printf("WARNING: at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
+} while (0)
+
+#ifndef WARN_ON
+#define WARN_ON(condition) ({ \
+ int __ret_warn_on = !!(condition); \
+ if (unlikely(__ret_warn_on)) \
+ __WARN(); \
+ unlikely(__ret_warn_on); \
+})
+#endif
+
+#ifndef WARN
+#define WARN(condition, format...) ({ \
+ int __ret_warn_on = !!(condition); \
+ if (unlikely(__ret_warn_on)) { \
+ __WARN(); \
+ puts("WARNING: "); \
+ printf(format); \
+ } \
+ unlikely(__ret_warn_on); \
+})
+#endif
+#endif