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