Commit | Line | Data |
---|---|---|
8b40f521 JK |
1 | #ifndef __PERF_PARSE_EVENTS_H |
2 | #define __PERF_PARSE_EVENTS_H | |
5242519b IM |
3 | /* |
4 | * Parse symbolic events/counts passed in as options: | |
5 | */ | |
6 | ||
d030260a | 7 | #include "../../../include/linux/perf_event.h" |
69aad6f1 ACM |
8 | |
9 | struct list_head; | |
10 | struct perf_evsel; | |
f120f9d5 | 11 | struct perf_evlist; |
69aad6f1 | 12 | |
5beeded1 JB |
13 | struct option; |
14 | ||
1ef2ed10 FW |
15 | struct tracepoint_path { |
16 | char *system; | |
17 | char *name; | |
18 | struct tracepoint_path *next; | |
19 | }; | |
20 | ||
21 | extern struct tracepoint_path *tracepoint_id_to_path(u64 config); | |
5c7a6682 | 22 | extern bool have_tracepoints(struct list_head *evlist); |
1ef2ed10 | 23 | |
1424dc96 | 24 | const char *event_type(int type); |
69aad6f1 | 25 | const char *event_name(struct perf_evsel *event); |
83a0944f | 26 | extern const char *__event_name(int type, u64 config); |
8ad8db37 | 27 | |
f120f9d5 JO |
28 | extern int parse_events_option(const struct option *opt, const char *str, |
29 | int unset); | |
30 | extern int parse_events(struct perf_evlist *evlist, const char *str, | |
31 | int unset); | |
c171b552 | 32 | extern int parse_filter(const struct option *opt, const char *str, int unset); |
8ad8db37 IM |
33 | |
34 | #define EVENTS_HELP_MAX (128*1024) | |
35 | ||
8f707d84 JO |
36 | enum { |
37 | PARSE_EVENTS__TERM_TYPE_CONFIG, | |
38 | PARSE_EVENTS__TERM_TYPE_CONFIG1, | |
39 | PARSE_EVENTS__TERM_TYPE_CONFIG2, | |
40 | PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD, | |
41 | PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE, | |
42 | PARSE_EVENTS__TERM_TYPE_NUM, | |
43 | PARSE_EVENTS__TERM_TYPE_STR, | |
44 | ||
45 | PARSE_EVENTS__TERM_TYPE_HARDCODED_MAX = | |
46 | PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE, | |
47 | }; | |
48 | ||
49 | struct parse_events__term { | |
50 | char *config; | |
51 | union { | |
52 | char *str; | |
53 | long num; | |
54 | } val; | |
55 | int type; | |
56 | ||
57 | struct list_head list; | |
58 | }; | |
59 | ||
60 | int parse_events__is_hardcoded_term(struct parse_events__term *term); | |
61 | int parse_events__new_term(struct parse_events__term **term, int type, | |
62 | char *config, char *str, long num); | |
63 | void parse_events__free_terms(struct list_head *terms); | |
89812fc8 JO |
64 | int parse_events_modifier(struct list_head *list __used, char *str __used); |
65 | int parse_events_add_tracepoint(struct list_head *list, int *idx, | |
66 | char *sys, char *event); | |
67 | int parse_events_add_raw(struct perf_evlist *evlist, unsigned long config, | |
68 | unsigned long config1, unsigned long config2, | |
69 | char *mod); | |
70 | int parse_events_add_numeric(struct list_head *list, int *idx, | |
8f707d84 JO |
71 | unsigned long type, unsigned long config, |
72 | struct list_head *head_config); | |
89812fc8 JO |
73 | int parse_events_add_cache(struct list_head *list, int *idx, |
74 | char *type, char *op_result1, char *op_result2); | |
75 | int parse_events_add_breakpoint(struct list_head *list, int *idx, | |
76 | void *ptr, char *type); | |
5f537a26 JO |
77 | int parse_events_add_pmu(struct list_head *list, int *idx, |
78 | char *pmu , struct list_head *head_config); | |
89812fc8 JO |
79 | void parse_events_error(struct list_head *list, int *idx, |
80 | char const *msg); | |
81 | ||
668b8788 ACM |
82 | void print_events(const char *event_glob); |
83 | void print_events_type(u8 type); | |
84 | void print_tracepoint_events(const char *subsys_glob, const char *event_glob); | |
85 | int print_hwcache_events(const char *event_glob); | |
20c457b8 | 86 | extern int is_valid_tracepoint(const char *event_string); |
8ad8db37 | 87 | |
5beeded1 JB |
88 | extern int valid_debugfs_mount(const char *debugfs); |
89 | ||
8b40f521 | 90 | #endif /* __PERF_PARSE_EVENTS_H */ |