/* 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 */