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