Merge branch 'master' of /home/trondmy/kernel/linux-2.6/
[linux-2.6] / include / asm-i386 / bug.h
1 #ifndef _I386_BUG_H
2 #define _I386_BUG_H
3
4
5 /*
6  * Tell the user there is some problem.
7  * The offending file and line are encoded encoded in the __bug_table section.
8  */
9
10 #ifdef CONFIG_BUG
11 #define HAVE_ARCH_BUG
12
13 #ifdef CONFIG_DEBUG_BUGVERBOSE
14 #define BUG()                                                           \
15         do {                                                            \
16                 asm volatile("1:\tud2\n"                                \
17                              ".pushsection __bug_table,\"a\"\n"         \
18                              "2:\t.long 1b, %c0\n"                      \
19                              "\t.word %c1, 0\n"                         \
20                              "\t.org 2b+%c2\n"                          \
21                              ".popsection"                              \
22                              : : "i" (__FILE__), "i" (__LINE__),        \
23                              "i" (sizeof(struct bug_entry)));           \
24                 for(;;) ;                                               \
25         } while(0)
26
27 #else
28 #define BUG()                                                           \
29         do {                                                            \
30                 asm volatile("ud2");                                    \
31                 for(;;) ;                                               \
32         } while(0)
33 #endif
34 #endif
35
36 #include <asm-generic/bug.h>
37 #endif