1#ifndef ARCH_PERF_REGS_H
2#define ARCH_PERF_REGS_H
3
4#include <stdlib.h>
5#include <linux/types.h>
6#include <asm/perf_regs.h>
7
8void perf_regs_load(u64 *regs);
9
10#define PERF_REGS_MASK	((1ULL << PERF_REG_ARM64_MAX) - 1)
11#define PERF_REGS_MAX	PERF_REG_ARM64_MAX
12#define PERF_SAMPLE_REGS_ABI	PERF_SAMPLE_REGS_ABI_64
13
14#define PERF_REG_IP	PERF_REG_ARM64_PC
15#define PERF_REG_SP	PERF_REG_ARM64_SP
16
17static inline const char *perf_reg_name(int id)
18{
19	switch (id) {
20	case PERF_REG_ARM64_X0:
21		return "x0";
22	case PERF_REG_ARM64_X1:
23		return "x1";
24	case PERF_REG_ARM64_X2:
25		return "x2";
26	case PERF_REG_ARM64_X3:
27		return "x3";
28	case PERF_REG_ARM64_X4:
29		return "x4";
30	case PERF_REG_ARM64_X5:
31		return "x5";
32	case PERF_REG_ARM64_X6:
33		return "x6";
34	case PERF_REG_ARM64_X7:
35		return "x7";
36	case PERF_REG_ARM64_X8:
37		return "x8";
38	case PERF_REG_ARM64_X9:
39		return "x9";
40	case PERF_REG_ARM64_X10:
41		return "x10";
42	case PERF_REG_ARM64_X11:
43		return "x11";
44	case PERF_REG_ARM64_X12:
45		return "x12";
46	case PERF_REG_ARM64_X13:
47		return "x13";
48	case PERF_REG_ARM64_X14:
49		return "x14";
50	case PERF_REG_ARM64_X15:
51		return "x15";
52	case PERF_REG_ARM64_X16:
53		return "x16";
54	case PERF_REG_ARM64_X17:
55		return "x17";
56	case PERF_REG_ARM64_X18:
57		return "x18";
58	case PERF_REG_ARM64_X19:
59		return "x19";
60	case PERF_REG_ARM64_X20:
61		return "x20";
62	case PERF_REG_ARM64_X21:
63		return "x21";
64	case PERF_REG_ARM64_X22:
65		return "x22";
66	case PERF_REG_ARM64_X23:
67		return "x23";
68	case PERF_REG_ARM64_X24:
69		return "x24";
70	case PERF_REG_ARM64_X25:
71		return "x25";
72	case PERF_REG_ARM64_X26:
73		return "x26";
74	case PERF_REG_ARM64_X27:
75		return "x27";
76	case PERF_REG_ARM64_X28:
77		return "x28";
78	case PERF_REG_ARM64_X29:
79		return "x29";
80	case PERF_REG_ARM64_SP:
81		return "sp";
82	case PERF_REG_ARM64_LR:
83		return "lr";
84	case PERF_REG_ARM64_PC:
85		return "pc";
86	default:
87		return NULL;
88	}
89
90	return NULL;
91}
92
93#endif /* ARCH_PERF_REGS_H */
94