2005-04-17 06:20:36 +08:00
|
|
|
#ifndef _S390_BUG_H
|
|
|
|
#define _S390_BUG_H
|
|
|
|
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
|
2005-05-01 23:59:01 +08:00
|
|
|
#ifdef CONFIG_BUG
|
2006-03-24 19:15:16 +08:00
|
|
|
|
2006-07-12 22:39:42 +08: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-17 06:20:36 +08:00
|
|
|
#define BUG() do { \
|
2006-03-24 19:15:16 +08:00
|
|
|
printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
|
2006-07-12 22:39:42 +08:00
|
|
|
__do_illegal_op(); \
|
2005-04-17 06:20:36 +08:00
|
|
|
} while (0)
|
|
|
|
|
|
|
|
#define HAVE_ARCH_BUG
|
2005-05-01 23:59:01 +08:00
|
|
|
#endif
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
#include <asm-generic/bug.h>
|
|
|
|
|
|
|
|
#endif
|