| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _LINUX_UNWINDER_H |
| #define _LINUX_UNWINDER_H |
| |
| #include <asm/stacktrace.h> |
| |
| struct unwinder { |
| const char *name; |
| struct list_head list; |
| int rating; |
| void (*dump)(struct task_struct *, struct pt_regs *, |
| unsigned long *, const struct stacktrace_ops *, void *); |
| }; |
| |
| extern int unwinder_init(void); |
| extern int unwinder_register(struct unwinder *); |
| |
| extern void unwind_stack(struct task_struct *, struct pt_regs *, |
| unsigned long *, const struct stacktrace_ops *, |
| void *); |
| |
| extern void stack_reader_dump(struct task_struct *, struct pt_regs *, |
| unsigned long *, const struct stacktrace_ops *, |
| void *); |
| |
| /* |
| * Used by fault handling code to signal to the unwinder code that it |
| * should switch to a different unwinder. |
| */ |
| extern int unwinder_faulted; |
| |
| #endif /* _LINUX_UNWINDER_H */ |