/* 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 */