linux/tools/perf/util/evsel_config.h
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2#ifndef __PERF_EVSEL_CONFIG_H
   3#define __PERF_EVSEL_CONFIG_H 1
   4
   5#include <linux/types.h>
   6#include <stdbool.h>
   7
   8/*
   9 * The 'struct evsel_config_term' is used to pass event
  10 * specific configuration data to evsel__config routine.
  11 * It is allocated within event parsing and attached to
  12 * evsel::config_terms list head.
  13*/
  14enum evsel_term_type {
  15        EVSEL__CONFIG_TERM_PERIOD,
  16        EVSEL__CONFIG_TERM_FREQ,
  17        EVSEL__CONFIG_TERM_TIME,
  18        EVSEL__CONFIG_TERM_CALLGRAPH,
  19        EVSEL__CONFIG_TERM_STACK_USER,
  20        EVSEL__CONFIG_TERM_INHERIT,
  21        EVSEL__CONFIG_TERM_MAX_STACK,
  22        EVSEL__CONFIG_TERM_MAX_EVENTS,
  23        EVSEL__CONFIG_TERM_OVERWRITE,
  24        EVSEL__CONFIG_TERM_DRV_CFG,
  25        EVSEL__CONFIG_TERM_BRANCH,
  26        EVSEL__CONFIG_TERM_PERCORE,
  27        EVSEL__CONFIG_TERM_AUX_OUTPUT,
  28        EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE,
  29        EVSEL__CONFIG_TERM_CFG_CHG,
  30};
  31
  32struct evsel_config_term {
  33        struct list_head      list;
  34        enum evsel_term_type  type;
  35        bool                  free_str;
  36        union {
  37                u64           period;
  38                u64           freq;
  39                bool          time;
  40                u64           stack_user;
  41                int           max_stack;
  42                bool          inherit;
  43                bool          overwrite;
  44                unsigned long max_events;
  45                bool          percore;
  46                bool          aux_output;
  47                u32           aux_sample_size;
  48                u64           cfg_chg;
  49                char          *str;
  50        } val;
  51        bool weak;
  52};
  53
  54struct evsel;
  55
  56struct evsel_config_term *__evsel__get_config_term(struct evsel *evsel, enum evsel_term_type type);
  57
  58#define evsel__get_config_term(evsel, type) \
  59        __evsel__get_config_term(evsel, EVSEL__CONFIG_TERM_ ## type)
  60
  61#endif // __PERF_EVSEL_CONFIG_H
  62