Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / um / include / asm / stacktrace.h
1 #ifndef _ASM_UML_STACKTRACE_H
2 #define _ASM_UML_STACKTRACE_H
3
4 #include <linux/uaccess.h>
5 #include <linux/ptrace.h>
6
7 struct stack_frame {
8         struct stack_frame *next_frame;
9         unsigned long return_address;
10 };
11
12 struct stacktrace_ops {
13         void (*address)(void *data, unsigned long address, int reliable);
14 };
15
16 #ifdef CONFIG_FRAME_POINTER
17 static inline unsigned long
18 get_frame_pointer(struct task_struct *task, struct pt_regs *segv_regs)
19 {
20         if (!task || task == current)
21                 return segv_regs ? PT_REGS_BP(segv_regs) : current_bp();
22         return KSTK_EBP(task);
23 }
24 #else
25 static inline unsigned long
26 get_frame_pointer(struct task_struct *task, struct pt_regs *segv_regs)
27 {
28         return 0;
29 }
30 #endif
31
32 static inline unsigned long
33 *get_stack_pointer(struct task_struct *task, struct pt_regs *segv_regs)
34 {
35         if (!task || task == current)
36                 return segv_regs ? (unsigned long *)PT_REGS_SP(segv_regs) : current_sp();
37         return (unsigned long *)KSTK_ESP(task);
38 }
39
40 void dump_trace(struct task_struct *tsk, const struct stacktrace_ops *ops, void *data);
41
42 #endif /* _ASM_UML_STACKTRACE_H */