| // 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 perf_evsel_config_term' is used to pass event | 
 |  * specific configuration data to perf_evsel__config routine. | 
 |  * It is allocated within event parsing and attached to | 
 |  * perf_evsel::config_terms list head. | 
 | */ | 
 | enum evsel_term_type { | 
 | 	PERF_EVSEL__CONFIG_TERM_PERIOD, | 
 | 	PERF_EVSEL__CONFIG_TERM_FREQ, | 
 | 	PERF_EVSEL__CONFIG_TERM_TIME, | 
 | 	PERF_EVSEL__CONFIG_TERM_CALLGRAPH, | 
 | 	PERF_EVSEL__CONFIG_TERM_STACK_USER, | 
 | 	PERF_EVSEL__CONFIG_TERM_INHERIT, | 
 | 	PERF_EVSEL__CONFIG_TERM_MAX_STACK, | 
 | 	PERF_EVSEL__CONFIG_TERM_MAX_EVENTS, | 
 | 	PERF_EVSEL__CONFIG_TERM_OVERWRITE, | 
 | 	PERF_EVSEL__CONFIG_TERM_DRV_CFG, | 
 | 	PERF_EVSEL__CONFIG_TERM_BRANCH, | 
 | 	PERF_EVSEL__CONFIG_TERM_PERCORE, | 
 | 	PERF_EVSEL__CONFIG_TERM_AUX_OUTPUT, | 
 | }; | 
 |  | 
 | struct perf_evsel_config_term { | 
 | 	struct list_head      list; | 
 | 	enum evsel_term_type  type; | 
 | 	union { | 
 | 		u64	      period; | 
 | 		u64	      freq; | 
 | 		bool	      time; | 
 | 		char	      *callgraph; | 
 | 		char	      *drv_cfg; | 
 | 		u64	      stack_user; | 
 | 		int	      max_stack; | 
 | 		bool	      inherit; | 
 | 		bool	      overwrite; | 
 | 		char	      *branch; | 
 | 		unsigned long max_events; | 
 | 		bool	      percore; | 
 | 		bool	      aux_output; | 
 | 	} val; | 
 | 	bool weak; | 
 | }; | 
 | #endif // __PERF_EVSEL_CONFIG_H |