61 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #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 */
 | 
