]>
Commit | Line | Data |
---|---|---|
49863894 WD |
1 | |
2 | #include <linux/errno.h> | |
3 | #include <linux/kernel.h> | |
4 | #include <linux/perf_event.h> | |
5 | #include <linux/bug.h> | |
6 | #include <asm/perf_regs.h> | |
7 | #include <asm/ptrace.h> | |
8 | ||
9 | u64 perf_reg_value(struct pt_regs *regs, int idx) | |
10 | { | |
11 | if (WARN_ON_ONCE((u32)idx >= PERF_REG_ARM_MAX)) | |
12 | return 0; | |
13 | ||
14 | return regs->uregs[idx]; | |
15 | } | |
16 | ||
17 | #define REG_RESERVED (~((1ULL << PERF_REG_ARM_MAX) - 1)) | |
18 | ||
19 | int perf_reg_validate(u64 mask) | |
20 | { | |
21 | if (!mask || mask & REG_RESERVED) | |
22 | return -EINVAL; | |
23 | ||
24 | return 0; | |
25 | } | |
26 | ||
27 | u64 perf_reg_abi(struct task_struct *task) | |
28 | { | |
29 | return PERF_SAMPLE_REGS_ABI_32; | |
30 | } | |
88a7c26a AL |
31 | |
32 | void perf_get_regs_user(struct perf_regs *regs_user, | |
33 | struct pt_regs *regs, | |
34 | struct pt_regs *regs_user_copy) | |
35 | { | |
36 | regs_user->regs = task_pt_regs(current); | |
37 | regs_user->abi = perf_reg_abi(current); | |
38 | } |