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