Merge branch 'master'
[linux-2.6] / include / asm-xtensa / bug.h
1 /*
2  * include/asm-xtensa/bug.h
3  *
4  * Macros to cause a 'bug' message.
5  *
6  * This file is subject to the terms and conditions of the GNU General Public
7  * License.  See the file "COPYING" in the main directory of this archive
8  * for more details.
9  *
10  * Copyright (C) 2001 - 2005 Tensilica Inc.
11  */
12
13 #ifndef _XTENSA_BUG_H
14 #define _XTENSA_BUG_H
15
16 #include <linux/stringify.h>
17
18 #define ILL     __asm__ __volatile__ (".byte 0,0,0\n")
19
20 #ifdef CONFIG_KALLSYMS
21 # define BUG() do {                                                     \
22         printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__);           \
23         ILL;                                                            \
24 } while (0)
25 #else
26 # define BUG() do {                                                     \
27         printk("kernel BUG!\n");                                        \
28         ILL;                                                            \
29 } while (0)
30 #endif
31
32 #define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
33 #define PAGE_BUG(page) do {  BUG(); } while (0)
34 #define WARN_ON(condition) do {                                            \
35   if (unlikely((condition)!=0)) {                                          \
36     printk ("Warning in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
37       dump_stack();                                                        \
38   }                                                                        \
39 } while (0)
40
41 #endif  /* _XTENSA_BUG_H */