]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
43599d1f JO |
2 | #ifndef _PERF_SYS_H |
3 | #define _PERF_SYS_H | |
4 | ||
82baa0eb JO |
5 | #include <unistd.h> |
6 | #include <sys/types.h> | |
7 | #include <sys/syscall.h> | |
14f0652b | 8 | #include <linux/compiler.h> |
91854f9a ACM |
9 | |
10 | struct perf_event_attr; | |
11 | ||
12 | extern bool test_attr__enabled; | |
13 | void test_attr__ready(void); | |
14 | void test_attr__init(void); | |
15 | void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu, | |
16 | int fd, int group_fd, unsigned long flags); | |
17 | ||
6bd7cf66 BT |
18 | #ifndef HAVE_ATTR_TEST |
19 | #define HAVE_ATTR_TEST 1 | |
20 | #endif | |
43599d1f | 21 | |
82baa0eb JO |
22 | static inline int |
23 | sys_perf_event_open(struct perf_event_attr *attr, | |
24 | pid_t pid, int cpu, int group_fd, | |
25 | unsigned long flags) | |
26 | { | |
27 | int fd; | |
28 | ||
29 | fd = syscall(__NR_perf_event_open, attr, pid, cpu, | |
30 | group_fd, flags); | |
31 | ||
6bd7cf66 | 32 | #if HAVE_ATTR_TEST |
82baa0eb JO |
33 | if (unlikely(test_attr__enabled)) |
34 | test_attr__open(attr, pid, cpu, fd, group_fd, flags); | |
35 | #endif | |
36 | return fd; | |
37 | } | |
38 | ||
43599d1f | 39 | #endif /* _PERF_SYS_H */ |