|  | #ifndef ARCH_PERF_REGS_H | 
|  | #define ARCH_PERF_REGS_H | 
|  |  | 
|  | #include <stdlib.h> | 
|  | #include <linux/types.h> | 
|  | #include <asm/perf_regs.h> | 
|  |  | 
|  | void perf_regs_load(u64 *regs); | 
|  |  | 
|  | #define PERF_REGS_MASK	((1ULL << PERF_REG_ARM_MAX) - 1) | 
|  | #define PERF_REGS_MAX	PERF_REG_ARM_MAX | 
|  | #define PERF_SAMPLE_REGS_ABI	PERF_SAMPLE_REGS_ABI_32 | 
|  |  | 
|  | #define PERF_REG_IP	PERF_REG_ARM_PC | 
|  | #define PERF_REG_SP	PERF_REG_ARM_SP | 
|  |  | 
|  | static inline const char *perf_reg_name(int id) | 
|  | { | 
|  | switch (id) { | 
|  | case PERF_REG_ARM_R0: | 
|  | return "r0"; | 
|  | case PERF_REG_ARM_R1: | 
|  | return "r1"; | 
|  | case PERF_REG_ARM_R2: | 
|  | return "r2"; | 
|  | case PERF_REG_ARM_R3: | 
|  | return "r3"; | 
|  | case PERF_REG_ARM_R4: | 
|  | return "r4"; | 
|  | case PERF_REG_ARM_R5: | 
|  | return "r5"; | 
|  | case PERF_REG_ARM_R6: | 
|  | return "r6"; | 
|  | case PERF_REG_ARM_R7: | 
|  | return "r7"; | 
|  | case PERF_REG_ARM_R8: | 
|  | return "r8"; | 
|  | case PERF_REG_ARM_R9: | 
|  | return "r9"; | 
|  | case PERF_REG_ARM_R10: | 
|  | return "r10"; | 
|  | case PERF_REG_ARM_FP: | 
|  | return "fp"; | 
|  | case PERF_REG_ARM_IP: | 
|  | return "ip"; | 
|  | case PERF_REG_ARM_SP: | 
|  | return "sp"; | 
|  | case PERF_REG_ARM_LR: | 
|  | return "lr"; | 
|  | case PERF_REG_ARM_PC: | 
|  | return "pc"; | 
|  | default: | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | #endif /* ARCH_PERF_REGS_H */ |