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 8 void 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 17 static 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