12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // SPDX-License-Identifier: GPL-2.0
- #ifndef __PERF_EVSEL_CONFIG_H
- #define __PERF_EVSEL_CONFIG_H 1
- #include <linux/types.h>
- #include <stdbool.h>
- /*
- * The 'struct evsel_config_term' is used to pass event
- * specific configuration data to evsel__config routine.
- * It is allocated within event parsing and attached to
- * evsel::config_terms list head.
- */
- enum evsel_term_type {
- EVSEL__CONFIG_TERM_PERIOD,
- EVSEL__CONFIG_TERM_FREQ,
- EVSEL__CONFIG_TERM_TIME,
- EVSEL__CONFIG_TERM_CALLGRAPH,
- EVSEL__CONFIG_TERM_STACK_USER,
- EVSEL__CONFIG_TERM_INHERIT,
- EVSEL__CONFIG_TERM_MAX_STACK,
- EVSEL__CONFIG_TERM_MAX_EVENTS,
- EVSEL__CONFIG_TERM_OVERWRITE,
- EVSEL__CONFIG_TERM_DRV_CFG,
- EVSEL__CONFIG_TERM_BRANCH,
- EVSEL__CONFIG_TERM_PERCORE,
- EVSEL__CONFIG_TERM_AUX_OUTPUT,
- EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE,
- EVSEL__CONFIG_TERM_CFG_CHG,
- };
- struct evsel_config_term {
- struct list_head list;
- enum evsel_term_type type;
- bool free_str;
- union {
- u64 period;
- u64 freq;
- bool time;
- u64 stack_user;
- int max_stack;
- bool inherit;
- bool overwrite;
- unsigned long max_events;
- bool percore;
- bool aux_output;
- u32 aux_sample_size;
- u64 cfg_chg;
- char *str;
- } val;
- bool weak;
- };
- struct evsel;
- struct evsel_config_term *__evsel__get_config_term(struct evsel *evsel, enum evsel_term_type type);
- #define evsel__get_config_term(evsel, type) \
- __evsel__get_config_term(evsel, EVSEL__CONFIG_TERM_ ## type)
- #endif // __PERF_EVSEL_CONFIG_H
|