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 perf_reg_value(struct pt_regs * regs,int idx)18static inline u64 perf_reg_value(struct pt_regs *regs, int idx) 19 { 20 return 0; 21 } 22 perf_reg_validate(u64 mask)23static inline int perf_reg_validate(u64 mask) 24 { 25 return mask ? -ENOSYS : 0; 26 } 27 perf_reg_abi(struct task_struct * task)28static inline u64 perf_reg_abi(struct task_struct *task) 29 { 30 return PERF_SAMPLE_REGS_ABI_NONE; 31 } 32 perf_get_regs_user(struct perf_regs * regs_user,struct pt_regs * regs,struct pt_regs * regs_user_copy)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