6e5aaaa9a2fb8d89710c357201dd83bcc69757b2
[linux-3.10.git] / include / asm-generic / bug.h
1 #ifndef _ASM_GENERIC_BUG_H
2 #define _ASM_GENERIC_BUG_H
3
4 #include <linux/compiler.h>
5 #include <linux/config.h>
6
7 #ifdef CONFIG_BUG
8 #ifndef HAVE_ARCH_BUG
9 #define BUG() do { \
10         printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
11         panic("BUG!"); \
12 } while (0)
13 #endif
14
15 #ifndef HAVE_ARCH_PAGE_BUG
16 #define PAGE_BUG(page) do { \
17         printk("page BUG for page at %p\n", page); \
18         BUG(); \
19 } while (0)
20 #endif
21
22 #ifndef HAVE_ARCH_BUG_ON
23 #define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
24 #endif
25
26 #ifndef HAVE_ARCH_WARN_ON
27 #define WARN_ON(condition) do { \
28         if (unlikely((condition)!=0)) { \
29                 printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
30                 dump_stack(); \
31         } \
32 } while (0)
33 #endif
34
35 #else /* !CONFIG_BUG */
36 #ifndef HAVE_ARCH_BUG
37 #define BUG()
38 #endif
39
40 #ifndef HAVE_ARCH_PAGE_BUG
41 #define PAGE_BUG(page) do { if (page) ; } while (0)
42 #endif
43
44 #ifndef HAVE_ARCH_BUG_ON
45 #define BUG_ON(condition) do { if (condition) ; } while(0)
46 #endif
47
48 #ifndef HAVE_ARCH_WARN_ON
49 #define WARN_ON(condition) do { if (condition) ; } while(0)
50 #endif
51 #endif
52
53 #endif