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