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_ARM_MAX) - 1)
11#define PERF_REGS_MAX	PERF_REG_ARM_MAX
12#define PERF_SAMPLE_REGS_ABI	PERF_SAMPLE_REGS_ABI_32
13
14#define PERF_REG_IP	PERF_REG_ARM_PC
15#define PERF_REG_SP	PERF_REG_ARM_SP
16
17static inline const char *perf_reg_name(int id)
18{
19	switch (id) {
20	case PERF_REG_ARM_R0:
21		return "r0";
22	case PERF_REG_ARM_R1:
23		return "r1";
24	case PERF_REG_ARM_R2:
25		return "r2";
26	case PERF_REG_ARM_R3:
27		return "r3";
28	case PERF_REG_ARM_R4:
29		return "r4";
30	case PERF_REG_ARM_R5:
31		return "r5";
32	case PERF_REG_ARM_R6:
33		return "r6";
34	case PERF_REG_ARM_R7:
35		return "r7";
36	case PERF_REG_ARM_R8:
37		return "r8";
38	case PERF_REG_ARM_R9:
39		return "r9";
40	case PERF_REG_ARM_R10:
41		return "r10";
42	case PERF_REG_ARM_FP:
43		return "fp";
44	case PERF_REG_ARM_IP:
45		return "ip";
46	case PERF_REG_ARM_SP:
47		return "sp";
48	case PERF_REG_ARM_LR:
49		return "lr";
50	case PERF_REG_ARM_PC:
51		return "pc";
52	default:
53		return NULL;
54	}
55
56	return NULL;
57}
58
59#endif /* ARCH_PERF_REGS_H */
60