0001
0002 #ifndef __ASM_ASM_BUG_H
0003
0004
0005
0006 #define __ASM_ASM_BUG_H
0007
0008 #include <asm/brk-imm.h>
0009
0010 #ifdef CONFIG_DEBUG_BUGVERBOSE
0011 #define _BUGVERBOSE_LOCATION(file, line) __BUGVERBOSE_LOCATION(file, line)
0012 #define __BUGVERBOSE_LOCATION(file, line) \
0013 .pushsection .rodata.str,"aMS",@progbits,1; \
0014 14472: .string file; \
0015 .popsection; \
0016 \
0017 .long 14472b - .; \
0018 .short line;
0019 #else
0020 #define _BUGVERBOSE_LOCATION(file, line)
0021 #endif
0022
0023 #ifdef CONFIG_GENERIC_BUG
0024
0025 #define __BUG_ENTRY(flags) \
0026 .pushsection __bug_table,"aw"; \
0027 .align 2; \
0028 14470: .long 14471f - .; \
0029 _BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
0030 .short flags; \
0031 .popsection; \
0032 14471:
0033 #else
0034 #define __BUG_ENTRY(flags)
0035 #endif
0036
0037 #define ASM_BUG_FLAGS(flags) \
0038 __BUG_ENTRY(flags) \
0039 brk BUG_BRK_IMM
0040
0041 #define ASM_BUG() ASM_BUG_FLAGS(0)
0042
0043 #endif