1#ifndef _X86_64_KDEBUG_H 2#define _X86_64_KDEBUG_H 1 3 4#include <linux/notifier.h> 5 6struct pt_regs; 7 8struct die_args { 9 struct pt_regs *regs; 10 const char *str; 11 long err; 12}; 13 14extern struct notifier_block *die_chain; 15 16/* Grossly misnamed. */ 17enum die_val { 18 DIE_OOPS = 1, 19 DIE_INT3, 20 DIE_DEBUG, 21 DIE_PANIC, 22 DIE_NMI, 23 DIE_DIE, 24 DIE_CALL, 25 DIE_CPUINIT, /* not really a die, but .. */ 26 DIE_TRAPINIT, /* not really a die, but .. */ 27 DIE_STOP, 28}; 29 30static inline int notify_die(enum die_val val,char *str,struct pt_regs *regs,long err) 31{ 32 struct die_args args = { regs: regs, str: str, err: err }; 33 return notifier_call_chain(&die_chain, val, &args); 34} 35 36extern int printk_address(unsigned long address); 37extern void die(const char *,struct pt_regs *,long); 38extern void show_stack(unsigned long* esp); 39extern void show_registers(struct pt_regs *regs); 40extern void dump_pagetable(unsigned long); 41 42#endif 43