bug.h 747 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef _SPARC_BUG_H
  2. #define _SPARC_BUG_H
  3. #ifdef CONFIG_BUG
  4. /* Only use the inline asm until a gcc release that can handle __builtin_trap
  5. * -rob 2003-06-25
  6. *
  7. * gcc-3.3.1 and later will be OK -DaveM
  8. */
  9. #if (__GNUC__ > 3) || \
  10. (__GNUC__ == 3 && __GNUC_MINOR__ > 3) || \
  11. (__GNUC__ == 3 && __GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ >= 4)
  12. #define __bug_trap() __builtin_trap()
  13. #else
  14. #define __bug_trap() \
  15. __asm__ __volatile__ ("t 0x5\n\t" : : )
  16. #endif
  17. #ifdef CONFIG_DEBUG_BUGVERBOSE
  18. extern void do_BUG(const char *file, int line);
  19. #define BUG() do { \
  20. do_BUG(__FILE__, __LINE__); \
  21. __bug_trap(); \
  22. } while (0)
  23. #else
  24. #define BUG() __bug_trap()
  25. #endif
  26. #define HAVE_ARCH_BUG
  27. #endif
  28. #include <asm-generic/bug.h>
  29. #endif