Linux Perf
perf-sys.h
Go to the documentation of this file.
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 */
bool test_attr__enabled
Definition: util.c:78
static int sys_perf_event_open(struct perf_event_attr *attr, pid_t pid, int cpu, int group_fd, unsigned long flags)
Definition: perf-sys.h:58
void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu, int fd, int group_fd, unsigned long flags)
Definition: attr.c:145
u32 pid
Definition: hists_common.c:15
u32 flags
Definition: attr.py:1