Commit | Line | Data |
---|---|---|
1965aae3 PA |
1 | #ifndef _ASM_X86_STACKTRACE_H |
2 | #define _ASM_X86_STACKTRACE_H | |
c0b766f1 | 3 | |
0741f4d2 CE |
4 | extern int kstack_depth_to_print; |
5 | ||
0406ca6d FW |
6 | int x86_is_stack_id(int id, char *name); |
7 | ||
61c1917f FW |
8 | struct thread_info; |
9 | struct stacktrace_ops; | |
10 | ||
11 | typedef unsigned long (*walk_stack_t)(struct thread_info *tinfo, | |
12 | unsigned long *stack, | |
13 | unsigned long bp, | |
14 | const struct stacktrace_ops *ops, | |
15 | void *data, | |
16 | unsigned long *end, | |
17 | int *graph); | |
18 | ||
19 | extern unsigned long | |
20 | print_context_stack(struct thread_info *tinfo, | |
21 | unsigned long *stack, unsigned long bp, | |
22 | const struct stacktrace_ops *ops, void *data, | |
23 | unsigned long *end, int *graph); | |
24 | ||
06d65bda FW |
25 | extern unsigned long |
26 | print_context_stack_bp(struct thread_info *tinfo, | |
27 | unsigned long *stack, unsigned long bp, | |
28 | const struct stacktrace_ops *ops, void *data, | |
29 | unsigned long *end, int *graph); | |
30 | ||
c0b766f1 AK |
31 | /* Generic stack tracer with callbacks */ |
32 | ||
33 | struct stacktrace_ops { | |
34 | void (*warning)(void *data, char *msg); | |
35 | /* msg must contain %s for the symbol */ | |
36 | void (*warning_symbol)(void *data, char *msg, unsigned long symbol); | |
bc850d6b | 37 | void (*address)(void *data, unsigned long address, int reliable); |
c0b766f1 AK |
38 | /* On negative return stop dumping */ |
39 | int (*stack)(void *data, char *name); | |
61c1917f | 40 | walk_stack_t walk_stack; |
c0b766f1 AK |
41 | }; |
42 | ||
bc850d6b AV |
43 | void dump_trace(struct task_struct *tsk, struct pt_regs *regs, |
44 | unsigned long *stack, unsigned long bp, | |
9689ba8a | 45 | const struct stacktrace_ops *ops, void *data); |
c0b766f1 | 46 | |
1965aae3 | 47 | #endif /* _ASM_X86_STACKTRACE_H */ |