| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _SPARC_BUG_H | 
 | 2 | #define _SPARC_BUG_H | 
 | 3 |  | 
| Matt Mackall | c8538a7 | 2005-05-01 08:59:01 -0700 | [diff] [blame] | 4 | #ifdef CONFIG_BUG | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 5 | /* Only use the inline asm until a gcc release that can handle __builtin_trap | 
 | 6 |  * -rob 2003-06-25 | 
 | 7 |  * | 
 | 8 |  * gcc-3.3.1 and later will be OK -DaveM | 
 | 9 |  */ | 
 | 10 | #if (__GNUC__ > 3) || \ | 
 | 11 |     (__GNUC__ == 3 && __GNUC_MINOR__ > 3) || \ | 
 | 12 |     (__GNUC__ == 3 && __GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ >= 4) | 
 | 13 | #define __bug_trap()		__builtin_trap() | 
 | 14 | #else | 
 | 15 | #define __bug_trap()					\ | 
 | 16 | 	__asm__ __volatile__ ("t 0x5\n\t" : : ) | 
 | 17 | #endif | 
 | 18 |  | 
 | 19 | #ifdef CONFIG_DEBUG_BUGVERBOSE | 
 | 20 | extern void do_BUG(const char *file, int line); | 
 | 21 | #define BUG() do {					\ | 
 | 22 | 	do_BUG(__FILE__, __LINE__);			\ | 
 | 23 | 	__bug_trap();				\ | 
 | 24 | } while (0) | 
 | 25 | #else | 
 | 26 | #define BUG()		__bug_trap() | 
 | 27 | #endif | 
 | 28 |  | 
 | 29 | #define HAVE_ARCH_BUG | 
| Matt Mackall | c8538a7 | 2005-05-01 08:59:01 -0700 | [diff] [blame] | 30 | #endif | 
 | 31 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 32 | #include <asm-generic/bug.h> | 
 | 33 |  | 
 | 34 | #endif |