diff options
Diffstat (limited to 'arch/alpha/include/asm/bug.h')
-rw-r--r-- | arch/alpha/include/asm/bug.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/alpha/include/asm/bug.h b/arch/alpha/include/asm/bug.h new file mode 100644 index 000000000000..695a5ee4b5d3 --- /dev/null +++ b/arch/alpha/include/asm/bug.h | |||
@@ -0,0 +1,28 @@ | |||
1 | #ifndef _ALPHA_BUG_H | ||
2 | #define _ALPHA_BUG_H | ||
3 | |||
4 | #include <linux/linkage.h> | ||
5 | |||
6 | #ifdef CONFIG_BUG | ||
7 | #include <asm/pal.h> | ||
8 | |||
9 | /* ??? Would be nice to use .gprel32 here, but we can't be sure that the | ||
10 | function loaded the GP, so this could fail in modules. */ | ||
11 | static inline void ATTRIB_NORET __BUG(const char *file, int line) | ||
12 | { | ||
13 | __asm__ __volatile__( | ||
14 | "call_pal %0 # bugchk\n\t" | ||
15 | ".long %1\n\t.8byte %2" | ||
16 | : : "i" (PAL_bugchk), "i"(line), "i"(file)); | ||
17 | for ( ; ; ) | ||
18 | ; | ||
19 | } | ||
20 | |||
21 | #define BUG() __BUG(__FILE__, __LINE__) | ||
22 | |||
23 | #define HAVE_ARCH_BUG | ||
24 | #endif | ||
25 | |||
26 | #include <asm-generic/bug.h> | ||
27 | |||
28 | #endif | ||