Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 */