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 __xtensa__ 50 #define CPUINFO_PROC {"core ID"} 51 #endif 52 53 #ifndef CPUINFO_PROC 54 #define CPUINFO_PROC { "model name", } 55 #endif 56 57 static inline int 58 sys_perf_event_open(struct perf_event_attr *attr, 59 pid_t pid, int cpu, int group_fd, 60 unsigned long flags) 61 { 62 int fd; 63 64 fd = syscall(__NR_perf_event_open, attr, pid, cpu, 65 group_fd, flags); 66 67 #ifdef HAVE_ATTR_TEST 68 if (unlikely(test_attr__enabled)) 69 test_attr__open(attr, pid, cpu, fd, group_fd, flags); 70 #endif 71 return fd; 72 } 73 74 #endif /* _PERF_SYS_H */ 75