1#ifndef _LINUX_PERF_REGS_H 2#define _LINUX_PERF_REGS_H 3 4struct perf_regs { 5 __u64 abi; 6 struct pt_regs *regs; 7}; 8 9#ifdef CONFIG_HAVE_PERF_REGS 10#include <asm/perf_regs.h> 11u64 perf_reg_value(struct pt_regs *regs, int idx); 12int perf_reg_validate(u64 mask); 13u64 perf_reg_abi(struct task_struct *task); 14void perf_get_regs_user(struct perf_regs *regs_user, 15 struct pt_regs *regs, 16 struct pt_regs *regs_user_copy); 17#else 18static inline u64 perf_reg_value(struct pt_regs *regs, int idx) 19{ 20 return 0; 21} 22 23static inline int perf_reg_validate(u64 mask) 24{ 25 return mask ? -ENOSYS : 0; 26} 27 28static inline u64 perf_reg_abi(struct task_struct *task) 29{ 30 return PERF_SAMPLE_REGS_ABI_NONE; 31} 32 33static 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 */ 42