2009-09-24 18:02:18 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#ifndef __PERF_PARSE_EVENTS_H
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define __PERF_PARSE_EVENTS_H
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-26 09:17:18 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/*
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * Parse symbolic events/counts passed in as options:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2012-05-21 09:12:49 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <linux/list.h>
							 | 
						
					
						
							
								
									
										
										
										
											2012-04-05 18:26:25 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <stdbool.h>
							 | 
						
					
						
							
								
									
										
										
										
											2014-04-25 21:31:02 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <linux/types.h>
							 | 
						
					
						
							
								
									
										
										
										
											2012-11-19 22:21:03 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <linux/perf_event.h>
							 | 
						
					
						
							
								
									
										
										
										
											2011-01-03 16:39:04 -02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								struct list_head;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								struct perf_evsel;
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-14 11:25:32 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct perf_evlist;
							 | 
						
					
						
							
								
									
										
										
										
											2011-01-03 16:39:04 -02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-07-21 14:16:29 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct option;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-08-28 03:09:58 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct tracepoint_path {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									char *system;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									char *name;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct tracepoint_path *next;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								extern struct tracepoint_path *tracepoint_id_to_path(u64 config);
							 | 
						
					
						
							
								
									
										
										
										
											2013-06-26 16:14:05 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								extern struct tracepoint_path *tracepoint_name_to_path(const char *name);
							 | 
						
					
						
							
								
									
										
										
										
											2011-01-22 19:12:38 -02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								extern bool have_tracepoints(struct list_head *evlist);
							 | 
						
					
						
							
								
									
										
										
										
											2009-08-28 03:09:58 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2011-03-09 22:23:28 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								const char *event_type(int type);
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-26 11:10:09 +02:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-14 11:25:32 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								extern int parse_events_option(const struct option *opt, const char *str,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
											       int unset);
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-15 14:39:51 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								extern int parse_events(struct perf_evlist *evlist, const char *str);
							 | 
						
					
						
							
								
									
										
										
										
											2012-06-15 14:31:40 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								extern int parse_events_terms(struct list_head *terms, const char *str);
							 | 
						
					
						
							
								
									
										
										
										
											2009-10-15 11:22:07 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								extern int parse_filter(const struct option *opt, const char *str, int unset);
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-26 11:10:09 +02:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define EVENTS_HELP_MAX (128*1024)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								enum {
							 | 
						
					
						
							
								
									
										
										
										
											2012-04-25 18:24:57 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_NUM,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_STR,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								enum {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_USER,
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_CONFIG,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_CONFIG1,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_CONFIG2,
							 | 
						
					
						
							
								
									
										
										
										
											2012-05-21 09:12:53 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_NAME,
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-18 16:29:49 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct parse_events_term {
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									char *config;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									union {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										char *str;
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-07 19:43:13 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
										u64  num;
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									} val;
							 | 
						
					
						
							
								
									
										
										
										
											2012-04-25 18:24:57 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									int type_val;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									int type_term;
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct list_head list;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-18 16:56:57 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct parse_events_evlist {
							 | 
						
					
						
							
								
									
										
										
										
											2012-06-15 14:31:38 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct list_head list;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									int idx;
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-22 18:09:29 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									int nr_groups;
							 | 
						
					
						
							
								
									
										
										
										
											2012-06-15 14:31:38 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-18 16:56:57 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct parse_events_terms {
							 | 
						
					
						
							
								
									
										
										
										
											2012-06-15 14:31:40 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct list_head *terms;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-18 16:29:49 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events__is_hardcoded_term(struct parse_events_term *term);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								int parse_events_term__num(struct parse_events_term **_term,
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-07 19:43:13 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											   int type_term, char *config, u64 num);
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-18 16:29:49 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_term__str(struct parse_events_term **_term,
							 | 
						
					
						
							
								
									
										
										
										
											2012-04-25 18:24:57 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											   int type_term, char *config, char *str);
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-18 16:29:49 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_term__sym_hw(struct parse_events_term **term,
							 | 
						
					
						
							
								
									
										
										
										
											2012-10-10 14:53:17 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											      char *config, unsigned idx);
							 | 
						
					
						
							
								
									
										
										
										
											2013-01-18 16:29:49 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_term__clone(struct parse_events_term **new,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
											     struct parse_events_term *term);
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void parse_events__free_terms(struct list_head *terms);
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-08 12:21:54 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events__modifier_event(struct list_head *list, char *str, bool add);
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-08 12:14:14 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events__modifier_group(struct list_head *list, char *event_mod);
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-16 21:10:21 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_name(struct list_head *list, char *name);
							 | 
						
					
						
							
								
									
										
										
										
											2013-07-02 13:27:25 -06:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_add_tracepoint(struct list_head *list, int *idx,
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:15 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
												char *sys, char *event);
							 | 
						
					
						
							
								
									
										
										
										
											2013-07-02 13:27:25 -06:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_add_numeric(struct list_head *list, int *idx,
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-07 19:43:13 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											     u32 type, u64 config,
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											     struct list_head *head_config);
							 | 
						
					
						
							
								
									
										
										
										
											2013-07-02 13:27:25 -06:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_add_cache(struct list_head *list, int *idx,
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:15 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											   char *type, char *op_result1, char *op_result2);
							 | 
						
					
						
							
								
									
										
										
										
											2013-07-02 13:27:25 -06:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_add_breakpoint(struct list_head *list, int *idx,
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:15 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
												void *ptr, char *type);
							 | 
						
					
						
							
								
									
										
										
										
											2013-07-02 13:27:25 -06:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int parse_events_add_pmu(struct list_head *list, int *idx,
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:18 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											 char *pmu , struct list_head *head_config);
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-14 16:35:48 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void parse_events__set_leader(char *name, struct list_head *list);
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-20 19:15:40 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void parse_events_update_lists(struct list_head *list_event,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
											       struct list_head *list_all);
							 | 
						
					
						
							
								
									
										
										
										
											2012-06-15 14:31:39 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void parse_events_error(void *data, void *scanner, char const *msg);
							 | 
						
					
						
							
								
									
										
										
										
											2012-03-15 20:09:15 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-09 16:31:52 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void print_events(const char *event_glob, bool name_only);
							 | 
						
					
						
							
								
									
										
										
										
											2011-02-17 15:38:58 -02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void print_events_type(u8 type);
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-09 16:31:52 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void print_tracepoint_events(const char *subsys_glob, const char *event_glob,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
											     bool name_only);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								int print_hwcache_events(const char *event_glob, bool name_only);
							 | 
						
					
						
							
								
									
										
										
										
											2011-01-03 17:50:45 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								extern int is_valid_tracepoint(const char *event_string);
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-26 11:10:09 +02:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-07-21 14:16:29 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								extern int valid_debugfs_mount(const char *debugfs);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-09-24 18:02:18 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#endif /* __PERF_PARSE_EVENTS_H */
							 |