Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _LINUX_UNWINDER_H
3#define _LINUX_UNWINDER_H
4
5#include <asm/stacktrace.h>
6
7struct 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
15extern int unwinder_init(void);
16extern int unwinder_register(struct unwinder *);
17
18extern void unwind_stack(struct task_struct *, struct pt_regs *,
19 unsigned long *, const struct stacktrace_ops *,
20 void *);
21
22extern 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 */
30extern int unwinder_faulted;
31
32#endif /* _LINUX_UNWINDER_H */
1#ifndef _LINUX_UNWINDER_H
2#define _LINUX_UNWINDER_H
3
4#include <asm/stacktrace.h>
5
6struct 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
14extern int unwinder_init(void);
15extern int unwinder_register(struct unwinder *);
16
17extern void unwind_stack(struct task_struct *, struct pt_regs *,
18 unsigned long *, const struct stacktrace_ops *,
19 void *);
20
21extern 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 */
29extern int unwinder_faulted;
30
31#endif /* _LINUX_UNWINDER_H */