Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _ASM_X86_KDEBUG_H
0003 #define _ASM_X86_KDEBUG_H
0004 
0005 #include <linux/notifier.h>
0006 
0007 struct pt_regs;
0008 
0009 /* Grossly misnamed. */
0010 enum die_val {
0011     DIE_OOPS = 1,
0012     DIE_INT3,
0013     DIE_DEBUG,
0014     DIE_PANIC,
0015     DIE_NMI,
0016     DIE_DIE,
0017     DIE_KERNELDEBUG,
0018     DIE_TRAP,
0019     DIE_GPF,
0020     DIE_CALL,
0021     DIE_PAGE_FAULT,
0022     DIE_NMIUNKNOWN,
0023 };
0024 
0025 enum show_regs_mode {
0026     SHOW_REGS_SHORT,
0027     /*
0028      * For when userspace crashed, but we don't think it's our fault, and
0029      * therefore don't print kernel registers.
0030      */
0031     SHOW_REGS_USER,
0032     SHOW_REGS_ALL
0033 };
0034 
0035 extern void die(const char *, struct pt_regs *,long);
0036 void die_addr(const char *str, struct pt_regs *regs, long err, long gp_addr);
0037 extern int __must_check __die(const char *, struct pt_regs *, long);
0038 extern void show_stack_regs(struct pt_regs *regs);
0039 extern void __show_regs(struct pt_regs *regs, enum show_regs_mode,
0040             const char *log_lvl);
0041 extern void show_iret_regs(struct pt_regs *regs, const char *log_lvl);
0042 extern unsigned long oops_begin(void);
0043 extern void oops_end(unsigned long, struct pt_regs *, int signr);
0044 
0045 #endif /* _ASM_X86_KDEBUG_H */