Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | /* Note - you should never unregister because that can race with NMIs. | |
b2b18660 | 21 | If you really want to do it first unregister - then synchronize_sched - then free. |
1da177e4 LT |
22 | */ |
23 | int register_die_notifier(struct notifier_block *nb); | |
24 | extern struct notifier_block *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 | ||
748f2edb GA |
44 | static inline int notify_die(enum die_val val, const char *str, |
45 | struct pt_regs *regs, long err, int trap, int sig) | |
1da177e4 | 46 | { |
748f2edb GA |
47 | struct die_args args = { |
48 | .regs = regs, | |
49 | .str = str, | |
50 | .err = err, | |
51 | .trapnr = trap, | |
52 | .signr = sig | |
53 | }; | |
1da177e4 LT |
54 | return notifier_call_chain(&i386die_chain, val, &args); |
55 | } | |
56 | ||
57 | #endif |