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