1#ifndef __ASM_BUG_H 2#define __ASM_BUG_H 3 4#include <linux/compiler.h> 5#include <asm/sgidefs.h> 6 7#ifdef CONFIG_BUG 8 9#include <asm/break.h> 10 11static inline void __noreturn BUG(void) 12{ 13 __asm__ __volatile__("break %0" : : "i" (BRK_BUG)); 14 unreachable(); 15} 16 17#define HAVE_ARCH_BUG 18 19#if (_MIPS_ISA > _MIPS_ISA_MIPS1) 20 21static inline void __BUG_ON(unsigned long condition) 22{ 23 if (__builtin_constant_p(condition)) { 24 if (condition) 25 BUG(); 26 else 27 return; 28 } 29 __asm__ __volatile__("tne $0, %0, %1" 30 : : "r" (condition), "i" (BRK_BUG)); 31} 32 33#define BUG_ON(C) __BUG_ON((unsigned long)(C)) 34 35#define HAVE_ARCH_BUG_ON 36 37#endif /* _MIPS_ISA > _MIPS_ISA_MIPS1 */ 38 39#endif 40 41#include <asm-generic/bug.h> 42 43#endif /* __ASM_BUG_H */ 44