home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / x86 / include / asm / bug.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  768 b   |  40 lines

  1. #ifndef _ASM_X86_BUG_H
  2. #define _ASM_X86_BUG_H
  3.  
  4. #ifdef CONFIG_BUG
  5. #define HAVE_ARCH_BUG
  6.  
  7. #ifdef CONFIG_DEBUG_BUGVERBOSE
  8.  
  9. #ifdef CONFIG_X86_32
  10. # define __BUG_C0    "2:\t.long 1b, %c0\n"
  11. #else
  12. # define __BUG_C0    "2:\t.quad 1b, %c0\n"
  13. #endif
  14.  
  15. #define BUG()                            \
  16. do {                                \
  17.     asm volatile("1:\tud2\n"                \
  18.              ".pushsection __bug_table,\"a\"\n"        \
  19.              __BUG_C0                    \
  20.              "\t.word %c1, 0\n"                \
  21.              "\t.org 2b+%c2\n"                \
  22.              ".popsection"                \
  23.              : : "i" (__FILE__), "i" (__LINE__),    \
  24.              "i" (sizeof(struct bug_entry)));        \
  25.     for (;;) ;                        \
  26. } while (0)
  27.  
  28. #else
  29. #define BUG()                            \
  30. do {                                \
  31.     asm volatile("ud2");                    \
  32.     for (;;) ;                        \
  33. } while (0)
  34. #endif
  35.  
  36. #endif /* !CONFIG_BUG */
  37.  
  38. #include <asm-generic/bug.h>
  39. #endif /* _ASM_X86_BUG_H */
  40.