1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ASM_X86_KDEBUG_H 3 #define _ASM_X86_KDEBUG_H 4 5 #include <linux/notifier.h> 6 7 struct pt_regs; 8 9 /* Grossly misnamed. */ 10 enum die_val { 11 DIE_OOPS = 1, 12 DIE_INT3, 13 DIE_DEBUG, 14 DIE_PANIC, 15 DIE_NMI, 16 DIE_DIE, 17 DIE_KERNELDEBUG, 18 DIE_TRAP, 19 DIE_GPF, 20 DIE_CALL, 21 DIE_PAGE_FAULT, 22 DIE_NMIUNKNOWN, 23 }; 24 25 enum show_regs_mode { 26 SHOW_REGS_SHORT, 27 /* 28 * For when userspace crashed, but we don't think it's our fault, and 29 * therefore don't print kernel registers. 30 */ 31 SHOW_REGS_USER, 32 SHOW_REGS_ALL 33 }; 34 35 extern void die(const char *, struct pt_regs *,long); 36 void die_addr(const char *str, struct pt_regs *regs, long err, long gp_addr); 37 extern int __must_check __die(const char *, struct pt_regs *, long); 38 extern void show_stack_regs(struct pt_regs *regs); 39 extern void __show_regs(struct pt_regs *regs, enum show_regs_mode); 40 extern void show_iret_regs(struct pt_regs *regs); 41 extern unsigned long oops_begin(void); 42 extern void oops_end(unsigned long, struct pt_regs *, int signr); 43 44 #endif /* _ASM_X86_KDEBUG_H */ 45