cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

record.h (2485B)


      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	int	      synth;
     81	int	      threads_spec;
     82	const char    *threads_user_spec;
     83};
     84
     85extern const char * const *record_usage;
     86extern struct option *record_options;
     87
     88int record__parse_freq(const struct option *opt, const char *str, int unset);
     89
     90static inline bool record_opts__no_switch_events(const struct record_opts *opts)
     91{
     92	return opts->record_switch_events_set && !opts->record_switch_events;
     93}
     94
     95#endif // _PERF_RECORD_H