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 */ 42