• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/s390/include/asm/
1#ifndef _ASM_S390_BUG_H
2#define _ASM_S390_BUG_H
3
4#include <linux/kernel.h>
5
6#ifdef CONFIG_BUG
7
8#ifdef CONFIG_DEBUG_BUGVERBOSE
9
10#define __EMIT_BUG(x) do {					\
11	asm volatile(						\
12		"0:	j	0b+2\n"				\
13		"1:\n"						\
14		".section .rodata.str,\"aMS\",@progbits,1\n"	\
15		"2:	.asciz	\""__FILE__"\"\n"		\
16		".previous\n"					\
17		".section __bug_table,\"a\"\n"			\
18		"3:	.long	1b-3b,2b-3b\n"			\
19		"	.short	%0,%1\n"			\
20		"	.org	3b+%2\n"			\
21		".previous\n"					\
22		: : "i" (__LINE__),				\
23		    "i" (x),					\
24		    "i" (sizeof(struct bug_entry)));		\
25} while (0)
26
27#else /* CONFIG_DEBUG_BUGVERBOSE */
28
29#define __EMIT_BUG(x) do {				\
30	asm volatile(					\
31		"0:	j	0b+2\n"			\
32		"1:\n"					\
33		".section __bug_table,\"a\"\n"		\
34		"2:	.long	1b-2b\n"		\
35		"	.short	%0\n"			\
36		"	.org	2b+%1\n"		\
37		".previous\n"				\
38		: : "i" (x),				\
39		    "i" (sizeof(struct bug_entry)));	\
40} while (0)
41
42#endif /* CONFIG_DEBUG_BUGVERBOSE */
43
44#define BUG() do {					\
45	__EMIT_BUG(0);					\
46	unreachable();					\
47} while (0)
48
49#define __WARN_TAINT(taint) do {			\
50	__EMIT_BUG(BUGFLAG_TAINT(taint));		\
51} while (0)
52
53#define WARN_ON(x) ({					\
54	int __ret_warn_on = !!(x);			\
55	if (__builtin_constant_p(__ret_warn_on)) {	\
56		if (__ret_warn_on)			\
57			__WARN();			\
58	} else {					\
59		if (unlikely(__ret_warn_on))		\
60			__WARN();			\
61	}						\
62	unlikely(__ret_warn_on);			\
63})
64
65#define HAVE_ARCH_BUG
66#define HAVE_ARCH_WARN_ON
67#endif /* CONFIG_BUG */
68
69#include <asm-generic/bug.h>
70
71#endif /* _ASM_S390_BUG_H */
72