2005-04-16 16:20:36 -06:00
|
|
|
#ifndef _S390_BUG_H
|
|
|
|
#define _S390_BUG_H
|
|
|
|
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
|
2005-05-01 09:59:01 -06:00
|
|
|
#ifdef CONFIG_BUG
|
2006-03-24 04:15:16 -07:00
|
|
|
|
2006-07-12 08:39:42 -06:00
|
|
|
static inline __attribute__((noreturn)) void __do_illegal_op(void)
|
|
|
|
{
|
|
|
|
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
|
|
|
|
__builtin_trap();
|
|
|
|
#else
|
|
|
|
asm volatile(".long 0");
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
2005-04-16 16:20:36 -06:00
|
|
|
#define BUG() do { \
|
2006-03-24 04:15:16 -07:00
|
|
|
printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
|
2006-07-12 08:39:42 -06:00
|
|
|
__do_illegal_op(); \
|
2005-04-16 16:20:36 -06:00
|
|
|
} while (0)
|
|
|
|
|
|
|
|
#define HAVE_ARCH_BUG
|
2005-05-01 09:59:01 -06:00
|
|
|
#endif
|
|
|
|
|
2005-04-16 16:20:36 -06:00
|
|
|
#include <asm-generic/bug.h>
|
|
|
|
|
|
|
|
#endif
|