#ifndef __ASM_X8664_BUG_H #define __ASM_X8664_BUG_H 1 #include /* * Tell the user there is some problem. The exception handler decodes * this frame. */ struct bug_frame { unsigned char ud2[2]; /* should use 32bit offset instead, but the assembler doesn't like it */ char *filename; unsigned short line; } __attribute__((packed)); #define BUG() \ asm volatile("ud2 ; .quad %c1 ; .short %c0" :: \ "i"(__LINE__), "i" (__stringify(KBUILD_BASENAME))) #define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) #define PAGE_BUG(page) BUG() void out_of_line_bug(void); #define WARN_ON(condition) do { \ if (unlikely((condition)!=0)) { \ printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ dump_stack(); \ } \ } while (0) #endif