| /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| #ifndef _UAPI_ASM_POWERPC_PERF_REGS_H | |
| #define _UAPI_ASM_POWERPC_PERF_REGS_H | |
| enum perf_event_powerpc_regs { | |
| PERF_REG_POWERPC_R0, | |
| PERF_REG_POWERPC_R1, | |
| PERF_REG_POWERPC_R2, | |
| PERF_REG_POWERPC_R3, | |
| PERF_REG_POWERPC_R4, | |
| PERF_REG_POWERPC_R5, | |
| PERF_REG_POWERPC_R6, | |
| PERF_REG_POWERPC_R7, | |
| PERF_REG_POWERPC_R8, | |
| PERF_REG_POWERPC_R9, | |
| PERF_REG_POWERPC_R10, | |
| PERF_REG_POWERPC_R11, | |
| PERF_REG_POWERPC_R12, | |
| PERF_REG_POWERPC_R13, | |
| PERF_REG_POWERPC_R14, | |
| PERF_REG_POWERPC_R15, | |
| PERF_REG_POWERPC_R16, | |
| PERF_REG_POWERPC_R17, | |
| PERF_REG_POWERPC_R18, | |
| PERF_REG_POWERPC_R19, | |
| PERF_REG_POWERPC_R20, | |
| PERF_REG_POWERPC_R21, | |
| PERF_REG_POWERPC_R22, | |
| PERF_REG_POWERPC_R23, | |
| PERF_REG_POWERPC_R24, | |
| PERF_REG_POWERPC_R25, | |
| PERF_REG_POWERPC_R26, | |
| PERF_REG_POWERPC_R27, | |
| PERF_REG_POWERPC_R28, | |
| PERF_REG_POWERPC_R29, | |
| PERF_REG_POWERPC_R30, | |
| PERF_REG_POWERPC_R31, | |
| PERF_REG_POWERPC_NIP, | |
| PERF_REG_POWERPC_MSR, | |
| PERF_REG_POWERPC_ORIG_R3, | |
| PERF_REG_POWERPC_CTR, | |
| PERF_REG_POWERPC_LINK, | |
| PERF_REG_POWERPC_XER, | |
| PERF_REG_POWERPC_CCR, | |
| PERF_REG_POWERPC_SOFTE, | |
| PERF_REG_POWERPC_TRAP, | |
| PERF_REG_POWERPC_DAR, | |
| PERF_REG_POWERPC_DSISR, | |
| PERF_REG_POWERPC_SIER, | |
| PERF_REG_POWERPC_MMCRA, | |
| /* Extended registers */ | |
| PERF_REG_POWERPC_MMCR0, | |
| PERF_REG_POWERPC_MMCR1, | |
| PERF_REG_POWERPC_MMCR2, | |
| PERF_REG_POWERPC_MMCR3, | |
| PERF_REG_POWERPC_SIER2, | |
| PERF_REG_POWERPC_SIER3, | |
| PERF_REG_POWERPC_PMC1, | |
| PERF_REG_POWERPC_PMC2, | |
| PERF_REG_POWERPC_PMC3, | |
| PERF_REG_POWERPC_PMC4, | |
| PERF_REG_POWERPC_PMC5, | |
| PERF_REG_POWERPC_PMC6, | |
| PERF_REG_POWERPC_SDAR, | |
| PERF_REG_POWERPC_SIAR, | |
| /* Max mask value for interrupt regs w/o extended regs */ | |
| PERF_REG_POWERPC_MAX = PERF_REG_POWERPC_MMCRA + 1, | |
| /* Max mask value for interrupt regs including extended regs */ | |
| PERF_REG_EXTENDED_MAX = PERF_REG_POWERPC_SIAR + 1, | |
| }; | |
| #define PERF_REG_PMU_MASK ((1ULL << PERF_REG_POWERPC_MAX) - 1) | |
| /* | |
| * PERF_REG_EXTENDED_MASK value for CPU_FTR_ARCH_300 | |
| * includes 11 SPRS from MMCR0 to SIAR excluding the | |
| * unsupported SPRS MMCR3, SIER2 and SIER3. | |
| */ | |
| #define PERF_REG_PMU_MASK_300 \ | |
| ((1ULL << PERF_REG_POWERPC_MMCR0) | (1ULL << PERF_REG_POWERPC_MMCR1) | \ | |
| (1ULL << PERF_REG_POWERPC_MMCR2) | (1ULL << PERF_REG_POWERPC_PMC1) | \ | |
| (1ULL << PERF_REG_POWERPC_PMC2) | (1ULL << PERF_REG_POWERPC_PMC3) | \ | |
| (1ULL << PERF_REG_POWERPC_PMC4) | (1ULL << PERF_REG_POWERPC_PMC5) | \ | |
| (1ULL << PERF_REG_POWERPC_PMC6) | (1ULL << PERF_REG_POWERPC_SDAR) | \ | |
| (1ULL << PERF_REG_POWERPC_SIAR)) | |
| /* | |
| * PERF_REG_EXTENDED_MASK value for CPU_FTR_ARCH_31 | |
| * includes 14 SPRs from MMCR0 to SIAR. | |
| */ | |
| #define PERF_REG_PMU_MASK_31 \ | |
| (PERF_REG_PMU_MASK_300 | (1ULL << PERF_REG_POWERPC_MMCR3) | \ | |
| (1ULL << PERF_REG_POWERPC_SIER2) | (1ULL << PERF_REG_POWERPC_SIER3)) | |
| #endif /* _UAPI_ASM_POWERPC_PERF_REGS_H */ |