Blame view

include/linux/perf_regs.h 969 Bytes
c5e63197d   Jiri Olsa   perf: Unified API...
1
2
  #ifndef _LINUX_PERF_REGS_H
  #define _LINUX_PERF_REGS_H
88a7c26af   Andy Lutomirski   perf: Move task_p...
3
4
5
6
  struct perf_regs {
  	__u64		abi;
  	struct pt_regs	*regs;
  };
c5e63197d   Jiri Olsa   perf: Unified API...
7
8
9
10
  #ifdef CONFIG_HAVE_PERF_REGS
  #include <asm/perf_regs.h>
  u64 perf_reg_value(struct pt_regs *regs, int idx);
  int perf_reg_validate(u64 mask);
4018994f3   Jiri Olsa   perf: Add ability...
11
  u64 perf_reg_abi(struct task_struct *task);
88a7c26af   Andy Lutomirski   perf: Move task_p...
12
13
14
  void perf_get_regs_user(struct perf_regs *regs_user,
  			struct pt_regs *regs,
  			struct pt_regs *regs_user_copy);
c5e63197d   Jiri Olsa   perf: Unified API...
15
16
17
18
19
20
21
22
23
24
  #else
  static inline u64 perf_reg_value(struct pt_regs *regs, int idx)
  {
  	return 0;
  }
  
  static inline int perf_reg_validate(u64 mask)
  {
  	return mask ? -ENOSYS : 0;
  }
4018994f3   Jiri Olsa   perf: Add ability...
25
26
27
28
29
  
  static inline u64 perf_reg_abi(struct task_struct *task)
  {
  	return PERF_SAMPLE_REGS_ABI_NONE;
  }
88a7c26af   Andy Lutomirski   perf: Move task_p...
30
31
32
33
34
35
36
37
  
  static inline void perf_get_regs_user(struct perf_regs *regs_user,
  				      struct pt_regs *regs,
  				      struct pt_regs *regs_user_copy)
  {
  	regs_user->regs = task_pt_regs(current);
  	regs_user->abi = perf_reg_abi(current);
  }
c5e63197d   Jiri Olsa   perf: Unified API...
38
39
  #endif /* CONFIG_HAVE_PERF_REGS */
  #endif /* _LINUX_PERF_REGS_H */