Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6] / arch / mips / include / asm / bug.h
1 #ifndef __ASM_BUG_H
2 #define __ASM_BUG_H
3
4 #include <asm/sgidefs.h>
5
6 #ifdef CONFIG_BUG
7
8 #include <asm/break.h>
9
10 static inline void __noreturn BUG(void)
11 {
12         __asm__ __volatile__("break %0" : : "i" (BRK_BUG));
13         /* Fool GCC into thinking the function doesn't return. */
14         while (1)
15                 ;
16 }
17
18 #define HAVE_ARCH_BUG
19
20 #if (_MIPS_ISA > _MIPS_ISA_MIPS1)
21
22 static inline void  __BUG_ON(unsigned long condition)
23 {
24         if (__builtin_constant_p(condition)) {
25                 if (condition)
26                         BUG();
27                 else
28                         return;
29         }
30         __asm__ __volatile__("tne $0, %0, %1"
31                              : : "r" (condition), "i" (BRK_BUG));
32 }
33
34 #define BUG_ON(C) __BUG_ON((unsigned long)(C))
35
36 #define HAVE_ARCH_BUG_ON
37
38 #endif /* _MIPS_ISA > _MIPS_ISA_MIPS1 */
39
40 #endif
41
42 #include <asm-generic/bug.h>
43
44 #endif /* __ASM_BUG_H */