Merge tag 'samsung-dt-4' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux...
[firefly-linux-kernel-4.4.55.git] / include / linux / perf_regs.h
1 #ifndef _LINUX_PERF_REGS_H
2 #define _LINUX_PERF_REGS_H
3
4 struct perf_regs {
5         __u64           abi;
6         struct pt_regs  *regs;
7 };
8
9 #ifdef CONFIG_HAVE_PERF_REGS
10 #include <asm/perf_regs.h>
11 u64 perf_reg_value(struct pt_regs *regs, int idx);
12 int perf_reg_validate(u64 mask);
13 u64 perf_reg_abi(struct task_struct *task);
14 void perf_get_regs_user(struct perf_regs *regs_user,
15                         struct pt_regs *regs,
16                         struct pt_regs *regs_user_copy);
17 #else
18 static inline u64 perf_reg_value(struct pt_regs *regs, int idx)
19 {
20         return 0;
21 }
22
23 static inline int perf_reg_validate(u64 mask)
24 {
25         return mask ? -ENOSYS : 0;
26 }
27
28 static inline u64 perf_reg_abi(struct task_struct *task)
29 {
30         return PERF_SAMPLE_REGS_ABI_NONE;
31 }
32
33 static inline void perf_get_regs_user(struct perf_regs *regs_user,
34                                       struct pt_regs *regs,
35                                       struct pt_regs *regs_user_copy)
36 {
37         regs_user->regs = task_pt_regs(current);
38         regs_user->abi = perf_reg_abi(current);
39 }
40 #endif /* CONFIG_HAVE_PERF_REGS */
41 #endif /* _LINUX_PERF_REGS_H */