linux/tools/perf/util/record.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _PERF_RECORD_H
   3#define _PERF_RECORD_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#include "util/target.h"
  11
  12struct option;
  13
  14struct record_opts {
  15        struct target target;
  16        bool          group;
  17        bool          inherit_stat;
  18        bool          no_buffering;
  19        bool          no_inherit;
  20        bool          no_inherit_set;
  21        bool          no_samples;
  22        bool          raw_samples;
  23        bool          sample_address;
  24        bool          sample_phys_addr;
  25        bool          sample_data_page_size;
  26        bool          sample_code_page_size;
  27        bool          sample_weight;
  28        bool          sample_time;
  29        bool          sample_time_set;
  30        bool          sample_cpu;
  31        bool          period;
  32        bool          period_set;
  33        bool          running_time;
  34        bool          full_auxtrace;
  35        bool          auxtrace_snapshot_mode;
  36        bool          auxtrace_snapshot_on_exit;
  37        bool          auxtrace_sample_mode;
  38        bool          record_namespaces;
  39        bool          record_cgroup;
  40        bool          record_switch_events;
  41        bool          record_switch_events_set;
  42        bool          all_kernel;
  43        bool          all_user;
  44        bool          kernel_callchains;
  45        bool          user_callchains;
  46        bool          tail_synthesize;
  47        bool          overwrite;
  48        bool          ignore_missing_thread;
  49        bool          strict_freq;
  50        bool          sample_id;
  51        bool          no_bpf_event;
  52        bool          kcore;
  53        bool          text_poke;
  54        bool          build_id;
  55        unsigned int  freq;
  56        unsigned int  mmap_pages;
  57        unsigned int  auxtrace_mmap_pages;
  58        unsigned int  user_freq;
  59        u64           branch_stack;
  60        u64           sample_intr_regs;
  61        u64           sample_user_regs;
  62        u64           default_interval;
  63        u64           user_interval;
  64        size_t        auxtrace_snapshot_size;
  65        const char    *auxtrace_snapshot_opts;
  66        const char    *auxtrace_sample_opts;
  67        bool          sample_transaction;
  68        int           initial_delay;
  69        bool          use_clockid;
  70        clockid_t     clockid;
  71        u64           clockid_res_ns;
  72        int           nr_cblocks;
  73        int           affinity;
  74        int           mmap_flush;
  75        unsigned int  comp_level;
  76        unsigned int  nr_threads_synthesize;
  77        int           ctl_fd;
  78        int           ctl_fd_ack;
  79        bool          ctl_fd_close;
  80};
  81
  82extern const char * const *record_usage;
  83extern struct option *record_options;
  84
  85int record__parse_freq(const struct option *opt, const char *str, int unset);
  86
  87static inline bool record_opts__no_switch_events(const struct record_opts *opts)
  88{
  89        return opts->record_switch_events_set && !opts->record_switch_events;
  90}
  91
  92#endif // _PERF_RECORD_H
  93