xref: /linux/arch/sh/include/asm/unwinder.h (revision a2cce7a9f1b8cc3d4edce106fb971529f1d4d9ce)
1 #ifndef _LINUX_UNWINDER_H
2 #define _LINUX_UNWINDER_H
3 
4 #include <asm/stacktrace.h>
5 
6 struct unwinder {
7 	const char *name;
8 	struct list_head list;
9 	int rating;
10 	void (*dump)(struct task_struct *, struct pt_regs *,
11 		     unsigned long *, const struct stacktrace_ops *, void *);
12 };
13 
14 extern int unwinder_init(void);
15 extern int unwinder_register(struct unwinder *);
16 
17 extern void unwind_stack(struct task_struct *, struct pt_regs *,
18 			 unsigned long *, const struct stacktrace_ops *,
19 			 void *);
20 
21 extern void stack_reader_dump(struct task_struct *, struct pt_regs *,
22 			      unsigned long *, const struct stacktrace_ops *,
23 			      void *);
24 
25 /*
26  * Used by fault handling code to signal to the unwinder code that it
27  * should switch to a different unwinder.
28  */
29 extern int unwinder_faulted;
30 
31 #endif /* _LINUX_UNWINDER_H */
32