]> nv-tegra.nvidia Code Review - linux-3.10.git/blob - include/asm-x86_64/bug.h
d2032f56e87c217d82cf4ed66ec98703f4049768
[linux-3.10.git] / include / asm-x86_64 / bug.h
1 #ifndef __ASM_X8664_BUG_H
2 #define __ASM_X8664_BUG_H 1
3
4 #include <linux/stringify.h>
5
6 /*
7  * Tell the user there is some problem.  The exception handler decodes 
8  * this frame.
9  */
10 struct bug_frame {
11        unsigned char ud2[2];
12         /* should use 32bit offset instead, but the assembler doesn't 
13            like it */
14         char *filename;
15         unsigned short line;
16 } __attribute__((packed));
17
18 #define HAVE_ARCH_BUG
19 #define BUG() \
20         asm volatile("ud2 ; .quad %c1 ; .short %c0" :: \
21                      "i"(__LINE__), "i" (__stringify(KBUILD_BASENAME)))
22 void out_of_line_bug(void);
23 #include <asm-generic/bug.h>
24
25 #endif