x86: add a list for custom page fault handlers.
[linux-2.6.git] / include / asm-x86 / kdebug.h
1 #ifndef _ASM_X86_KDEBUG_H
2 #define _ASM_X86_KDEBUG_H
3
4 #include <linux/notifier.h>
5
6 struct pt_regs;
7
8 /* Grossly misnamed. */
9 enum die_val {
10         DIE_OOPS = 1,
11         DIE_INT3,
12         DIE_DEBUG,
13         DIE_PANIC,
14         DIE_NMI,
15         DIE_DIE,
16         DIE_NMIWATCHDOG,
17         DIE_KERNELDEBUG,
18         DIE_TRAP,
19         DIE_GPF,
20         DIE_CALL,
21         DIE_NMI_IPI,
22         DIE_PAGE_FAULT,
23         DIE_NMIUNKNOWN,
24 };
25
26 extern void printk_address(unsigned long address, int reliable);
27 extern void die(const char *, struct pt_regs *,long);
28 extern int __must_check __die(const char *, struct pt_regs *, long);
29 extern void show_registers(struct pt_regs *regs);
30 extern void __show_registers(struct pt_regs *, int all);
31 extern void show_trace(struct task_struct *t, struct pt_regs *regs,
32                        unsigned long *sp, unsigned long bp);
33 extern void __show_regs(struct pt_regs *regs);
34 extern void show_regs(struct pt_regs *regs);
35 extern unsigned long oops_begin(void);
36 extern void oops_end(unsigned long, struct pt_regs *, int signr);
37
38 struct pf_handler {
39         struct hlist_node hlist;
40         int (*handler)(struct pt_regs *regs, unsigned long error_code,
41                                                 unsigned long address);
42 };
43
44 extern void register_page_fault_handler(struct pf_handler *new_pfh);
45 extern void unregister_page_fault_handler(struct pf_handler *old_pfh);
46
47 #endif