linux/tools/perf/perf.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _PERF_PERF_H
   3#define _PERF_PERF_H
   4
   5#include <time.h>
   6#include <stdbool.h>
   7#include <linux/types.h>
   8#include <linux/stddef.h>
   9#include <linux/perf_event.h>
  10
  11extern bool test_attr__enabled;
  12void test_attr__ready(void);
  13void test_attr__init(void);
  14void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu,
  15                     int fd, int group_fd, unsigned long flags);
  16
  17#define HAVE_ATTR_TEST
  18#include "perf-sys.h"
  19
  20static inline unsigned long long rdclock(void)
  21{
  22        struct timespec ts;
  23
  24        clock_gettime(CLOCK_MONOTONIC, &ts);
  25        return ts.tv_sec * 1000000000ULL + ts.tv_nsec;
  26}
  27
  28#ifndef MAX_NR_CPUS
  29#define MAX_NR_CPUS                     2048
  30#endif
  31
  32extern const char *input_name;
  33extern bool perf_host, perf_guest;
  34extern const char perf_version_string[];
  35
  36void pthread__unblock_sigwinch(void);
  37
  38#include "util/target.h"
  39
  40struct record_opts {
  41        struct target target;
  42        bool         group;
  43        bool         inherit_stat;
  44        bool         no_buffering;
  45        bool         no_inherit;
  46        bool         no_inherit_set;
  47        bool         no_samples;
  48        bool         raw_samples;
  49        bool         sample_address;
  50        bool         sample_phys_addr;
  51        bool         sample_weight;
  52        bool         sample_time;
  53        bool         sample_time_set;
  54        bool         sample_cpu;
  55        bool         period;
  56        bool         period_set;
  57        bool         running_time;
  58        bool         full_auxtrace;
  59        bool         auxtrace_snapshot_mode;
  60        bool         record_namespaces;
  61        bool         record_switch_events;
  62        bool         all_kernel;
  63        bool         all_user;
  64        bool         kernel_callchains;
  65        bool         user_callchains;
  66        bool         tail_synthesize;
  67        bool         overwrite;
  68        bool         ignore_missing_thread;
  69        bool         strict_freq;
  70        bool         sample_id;
  71        bool         no_bpf_event;
  72        unsigned int freq;
  73        unsigned int mmap_pages;
  74        unsigned int auxtrace_mmap_pages;
  75        unsigned int user_freq;
  76        u64          branch_stack;
  77        u64          sample_intr_regs;
  78        u64          sample_user_regs;
  79        u64          default_interval;
  80        u64          user_interval;
  81        size_t       auxtrace_snapshot_size;
  82        const char   *auxtrace_snapshot_opts;
  83        bool         sample_transaction;
  84        unsigned     initial_delay;
  85        bool         use_clockid;
  86        clockid_t    clockid;
  87        u64          clockid_res_ns;
  88        int          nr_cblocks;
  89        int          affinity;
  90        int          mmap_flush;
  91        unsigned int comp_level;
  92};
  93
  94enum perf_affinity {
  95        PERF_AFFINITY_SYS = 0,
  96        PERF_AFFINITY_NODE,
  97        PERF_AFFINITY_CPU,
  98        PERF_AFFINITY_MAX
  99};
 100
 101struct option;
 102extern const char * const *record_usage;
 103extern struct option *record_options;
 104extern int version_verbose;
 105
 106int record__parse_freq(const struct option *opt, const char *str, int unset);
 107#endif
 108