linux/tools/perf/perf-sys.h
<<
>>
Prefs
   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/compiler.h>
   9
  10struct perf_event_attr;
  11
  12extern bool test_attr__enabled;
  13void test_attr__ready(void);
  14void test_attr__init(void);
  15void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu,
  16                     int fd, int group_fd, unsigned long flags);
  17
  18#ifndef HAVE_ATTR_TEST
  19#define HAVE_ATTR_TEST 1
  20#endif
  21
  22static inline int
  23sys_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
  32#if HAVE_ATTR_TEST
  33        if (unlikely(test_attr__enabled))
  34                test_attr__open(attr, pid, cpu, fd, group_fd, flags);
  35#endif
  36        return fd;
  37}
  38
  39#endif /* _PERF_SYS_H */
  40