[PATCH] Notify page fault call chain for i386
[linux-2.6.git] / include / asm-i386 / kdebug.h
1 #ifndef _I386_KDEBUG_H
2 #define _I386_KDEBUG_H 1
3
4 /*
5  * Aug-05 2004 Ported by Prasanna S Panchamukhi <prasanna@in.ibm.com>
6  * from x86_64 architecture.
7  */
8 #include <linux/notifier.h>
9
10 struct pt_regs;
11
12 struct die_args {
13         struct pt_regs *regs;
14         const char *str;
15         long err;
16         int trapnr;
17         int signr;
18 };
19
20 extern int register_die_notifier(struct notifier_block *);
21 extern int unregister_die_notifier(struct notifier_block *);
22 extern int register_page_fault_notifier(struct notifier_block *);
23 extern int unregister_page_fault_notifier(struct notifier_block *);
24 extern struct atomic_notifier_head i386die_chain;
25
26
27 /* Grossly misnamed. */
28 enum die_val {
29         DIE_OOPS = 1,
30         DIE_INT3,
31         DIE_DEBUG,
32         DIE_PANIC,
33         DIE_NMI,
34         DIE_DIE,
35         DIE_NMIWATCHDOG,
36         DIE_KERNELDEBUG,
37         DIE_TRAP,
38         DIE_GPF,
39         DIE_CALL,
40         DIE_NMI_IPI,
41         DIE_PAGE_FAULT,
42 };
43
44 static inline int notify_die(enum die_val val, const char *str,
45                         struct pt_regs *regs, long err, int trap, int sig)
46 {
47         struct die_args args = {
48                 .regs = regs,
49                 .str = str,
50                 .err = err,
51                 .trapnr = trap,
52                 .signr = sig
53         };
54         return atomic_notifier_call_chain(&i386die_chain, val, &args);
55 }
56
57 #endif