1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __PERF_UTIL_HEADER_H 3*4882a593Smuzhiyun #define __PERF_UTIL_HEADER_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/stringify.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #define mfspr(rn) ({unsigned long rval; \ 8*4882a593Smuzhiyun asm volatile("mfspr %0," __stringify(rn) \ 9*4882a593Smuzhiyun : "=r" (rval)); rval; }) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define SPRN_PVR 0x11F /* Processor Version Register */ 12*4882a593Smuzhiyun #define PVR_VER(pvr) (((pvr) >> 16) & 0xFFFF) /* Version field */ 13*4882a593Smuzhiyun #define PVR_REV(pvr) (((pvr) >> 0) & 0xFFFF) /* Revison field */ 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #endif /* __PERF_UTIL_HEADER_H */ 16