xref: /linux/tools/perf/util/perf_regs.h (revision b85d45947951d23cb22d90caecf4c1eb81342c96)
1 #ifndef __PERF_REGS_H
2 #define __PERF_REGS_H
3 
4 #include <linux/types.h>
5 #include <linux/compiler.h>
6 
7 struct regs_dump;
8 
9 struct sample_reg {
10 	const char *name;
11 	uint64_t mask;
12 };
13 #define SMPL_REG(n, b) { .name = #n, .mask = 1ULL << (b) }
14 #define SMPL_REG_END { .name = NULL }
15 
16 extern const struct sample_reg sample_reg_masks[];
17 
18 #ifdef HAVE_PERF_REGS_SUPPORT
19 #include <perf_regs.h>
20 
21 int perf_reg_value(u64 *valp, struct regs_dump *regs, int id);
22 
23 #else
24 #define PERF_REGS_MASK	0
25 #define PERF_REGS_MAX	0
26 
27 static inline const char *perf_reg_name(int id __maybe_unused)
28 {
29 	return NULL;
30 }
31 
32 static inline int perf_reg_value(u64 *valp __maybe_unused,
33 				 struct regs_dump *regs __maybe_unused,
34 				 int id __maybe_unused)
35 {
36 	return 0;
37 }
38 #endif /* HAVE_PERF_REGS_SUPPORT */
39 #endif /* __PERF_REGS_H */
40