Merge branches 'amd-iommu/fixes' and 'dma-debug/fixes' into iommu/fixes
[linux-2.6-block.git] / arch / x86 / include / asm / stacktrace.h
CommitLineData
1965aae3
PA
1#ifndef _ASM_X86_STACKTRACE_H
2#define _ASM_X86_STACKTRACE_H
c0b766f1 3
0741f4d2
CE
4extern int kstack_depth_to_print;
5
0406ca6d
FW
6int x86_is_stack_id(int id, char *name);
7
61c1917f
FW
8struct thread_info;
9struct stacktrace_ops;
10
11typedef 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
19extern unsigned long
20print_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
25extern unsigned long
26print_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
33struct 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
43void 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 */