Merge branch 'linux-2.6' into for-2.6.22
[linux-2.6] / include / asm-x86_64 / bug.h
1 #ifndef __ASM_X8664_BUG_H
2 #define __ASM_X8664_BUG_H 1
3
4 #ifdef CONFIG_BUG
5 #define HAVE_ARCH_BUG
6
7 #ifdef CONFIG_DEBUG_BUGVERBOSE
8 #define BUG()                                                           \
9         do {                                                            \
10                 asm volatile("1:\tud2\n"                                \
11                              ".pushsection __bug_table,\"a\"\n"         \
12                              "2:\t.quad 1b, %c0\n"                      \
13                              "\t.word %c1, 0\n"                         \
14                              "\t.org 2b+%c2\n"                          \
15                              ".popsection"                              \
16                              : : "i" (__FILE__), "i" (__LINE__),        \
17                                 "i" (sizeof(struct bug_entry)));        \
18                 for(;;) ;                                               \
19         } while(0)
20 #else
21 #define BUG()                                                           \
22         do {                                                            \
23                 asm volatile("ud2");                                    \
24                 for(;;) ;                                               \
25         } while(0)
26 #endif
27
28 void out_of_line_bug(void);
29 #else
30 static inline void out_of_line_bug(void) { }
31 #endif
32
33 #include <asm-generic/bug.h>
34 #endif