[PATCH] avr32 architecture
[linux-2.6.git] / include / asm-avr32 / kdebug.h
1 #ifndef __ASM_AVR32_KDEBUG_H
2 #define __ASM_AVR32_KDEBUG_H
3
4 #include <linux/notifier.h>
5
6 struct pt_regs;
7
8 struct die_args {
9         struct pt_regs *regs;
10         int trapnr;
11 };
12
13 int register_die_notifier(struct notifier_block *nb);
14 int unregister_die_notifier(struct notifier_block *nb);
15 int register_page_fault_notifier(struct notifier_block *nb);
16 int unregister_page_fault_notifier(struct notifier_block *nb);
17 extern struct atomic_notifier_head avr32_die_chain;
18
19 /* Grossly misnamed. */
20 enum die_val {
21         DIE_FAULT,
22         DIE_BREAKPOINT,
23         DIE_SSTEP,
24         DIE_PAGE_FAULT,
25 };
26
27 static inline int notify_die(enum die_val val, struct pt_regs *regs,
28                              int trap, int sig)
29 {
30         struct die_args args = {
31                 .regs = regs,
32                 .trapnr = trap,
33         };
34
35         return atomic_notifier_call_chain(&avr32_die_chain, val, &args);
36 }
37
38 #endif /* __ASM_AVR32_KDEBUG_H */