]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef __ASM_SH_BUG_H |
2 | #define __ASM_SH_BUG_H | |
3 | ||
c8538a7a | 4 | #ifdef CONFIG_BUG |
dc34d312 PM |
5 | |
6 | struct bug_frame { | |
7 | unsigned short opcode; | |
8 | unsigned short line; | |
9 | const char *file; | |
10 | const char *func; | |
11 | }; | |
12 | ||
13 | struct pt_regs; | |
14 | ||
15 | extern 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() \ | |
22 | do { \ | |
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() \ | |
38 | do { \ | |
39 | __asm__ __volatile__ ( \ | |
40 | ".align 2\n\t" \ | |
41 | ".short %O0\n\t" \ | |
42 | : \ | |
43 | : "n" (TRAPA_BUG_OPCODE)); \ | |
1da177e4 LT |
44 | } while (0) |
45 | ||
dc34d312 PM |
46 | #endif /* CONFIG_DEBUG_BUGVERBOSE */ |
47 | ||
1da177e4 | 48 | #define HAVE_ARCH_BUG |
dc34d312 PM |
49 | |
50 | #endif /* CONFIG_BUG */ | |
c8538a7a | 51 | |
1da177e4 LT |
52 | #include <asm-generic/bug.h> |
53 | ||
dc34d312 | 54 | #endif /* __ASM_SH_BUG_H */ |