at v2.6.21 919 B view raw
1#ifndef __ASM_SH_BUG_H 2#define __ASM_SH_BUG_H 3 4#ifdef CONFIG_BUG 5 6struct bug_frame { 7 unsigned short opcode; 8 unsigned short line; 9 const char *file; 10 const char *func; 11}; 12 13struct pt_regs; 14 15extern void handle_BUG(struct pt_regs *); 16 17#define TRAPA_BUG_OPCODE 0xc33e /* trapa #0x3e */ 18 19#ifdef CONFIG_DEBUG_BUGVERBOSE 20 21#define BUG() \ 22do { \ 23 __asm__ __volatile__ ( \ 24 ".align 2\n\t" \ 25 ".short %O0\n\t" \ 26 ".short %O1\n\t" \ 27 ".long %O2\n\t" \ 28 ".long %O3\n\t" \ 29 : \ 30 : "n" (TRAPA_BUG_OPCODE), \ 31 "i" (__LINE__), "X" (__FILE__), \ 32 "X" (__FUNCTION__)); \ 33} while (0) 34 35#else 36 37#define BUG() \ 38do { \ 39 __asm__ __volatile__ ( \ 40 ".align 2\n\t" \ 41 ".short %O0\n\t" \ 42 : \ 43 : "n" (TRAPA_BUG_OPCODE)); \ 44} while (0) 45 46#endif /* CONFIG_DEBUG_BUGVERBOSE */ 47 48#define HAVE_ARCH_BUG 49 50#endif /* CONFIG_BUG */ 51 52#include <asm-generic/bug.h> 53 54#endif /* __ASM_SH_BUG_H */