1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _PERF_SYS_H 3 #define _PERF_SYS_H 4 5 #include <unistd.h> 6 #include <sys/types.h> 7 #include <sys/syscall.h> 8 #include <linux/types.h> 9 #include <linux/compiler.h> 10 #include <linux/perf_event.h> 11 #include <asm/barrier.h> 12 13 #ifdef __powerpc__ 14 #define CPUINFO_PROC {"cpu"} 15 #endif 16 17 #ifdef __s390__ 18 #define CPUINFO_PROC {"vendor_id"} 19 #endif 20 21 #ifdef __sh__ 22 #define CPUINFO_PROC {"cpu type"} 23 #endif 24 25 #ifdef __hppa__ 26 #define CPUINFO_PROC {"cpu"} 27 #endif 28 29 #ifdef __sparc__ 30 #define CPUINFO_PROC {"cpu"} 31 #endif 32 33 #ifdef __alpha__ 34 #define CPUINFO_PROC {"cpu model"} 35 #endif 36 37 #ifdef __arm__ 38 #define CPUINFO_PROC {"model name", "Processor"} 39 #endif 40 41 #ifdef __mips__ 42 #define CPUINFO_PROC {"cpu model"} 43 #endif 44 45 #ifdef __arc__ 46 #define CPUINFO_PROC {"Processor"} 47 #endif 48 49 #ifdef __metag__ 50 #define CPUINFO_PROC {"CPU"} 51 #endif 52 53 #ifdef __xtensa__ 54 #define CPUINFO_PROC {"core ID"} 55 #endif 56 57 #ifndef CPUINFO_PROC 58 #define CPUINFO_PROC { "model name", } 59 #endif 60 61 static inline int 62 sys_perf_event_open(struct perf_event_attr *attr, 63 pid_t pid, int cpu, int group_fd, 64 unsigned long flags) 65 { 66 int fd; 67 68 fd = syscall(__NR_perf_event_open, attr, pid, cpu, 69 group_fd, flags); 70 71 #ifdef HAVE_ATTR_TEST 72 if (unlikely(test_attr__enabled)) 73 test_attr__open(attr, pid, cpu, fd, group_fd, flags); 74 #endif 75 return fd; 76 } 77 78 #endif /* _PERF_SYS_H */ 79