Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: #ifndef _ASM_X86_BUG_H 2: #define _ASM_X86_BUG_H 3: 4: #ifdef CONFIG_BUG 5: #define HAVE_ARCH_BUG 6: 7: #ifdef CONFIG_DEBUG_BUGVERBOSE 8: 9: #ifdef CONFIG_X86_32 10: # define __BUG_C0 "2:\t.long 1b, %c0\n" 11: #else 12: # define __BUG_C0 "2:\t.long 1b - 2b, %c0 - 2b\n" 13: #endif 14: 15: #define BUG() \ 16: do { \ 17: asm volatile("1:\tud2\n" \ 18: ".pushsection __bug_table,\"a\"\n" \ 19: __BUG_C0 \ 20: "\t.word %c1, 0\n" \ 21: "\t.org 2b+%c2\n" \ 22: ".popsection" \ 23: : : "i" (__FILE__), "i" (__LINE__), \ 24: "i" (sizeof(struct bug_entry))); \ 25: unreachable(); \ 26: } while (0) 27: 28: #else 29: #define BUG() \ 30: do { \ 31: asm volatile("ud2"); \ 32: unreachable(); \ 33: } while (0) 34: #endif 35: 36: #endif /* !CONFIG_BUG */ 37: 38: #include <asm-generic/bug.h> 39: 40: #endif /* _ASM_X86_BUG_H */ 41: