1e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#ifndef __PERF_PARSE_EVENTS_H
2e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define __PERF_PARSE_EVENTS_H
3e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng/*
4e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng * Parse symbolic events/counts passed in as options:
5e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng */
6e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
7e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng/* ANDROID_CHANGE_BEGIN */
8e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#if 0
9e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include "../../../include/linux/perf_event.h"
10e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#else
11e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include "include/linux/added/perf_event.h"
12e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#endif
13e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng/* ANDROID_CHANGE_END */
14e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
15e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstruct list_head;
16e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstruct perf_evsel;
17e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
18e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstruct option;
19e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
20e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstruct tracepoint_path {
21e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng	char *system;
22e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng	char *name;
23e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng	struct tracepoint_path *next;
24e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng};
25e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
26e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengextern struct tracepoint_path *tracepoint_id_to_path(u64 config);
27e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengextern bool have_tracepoints(struct list_head *evlist);
28e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
29e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengconst char *event_type(int type);
30e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengconst char *event_name(struct perf_evsel *event);
31e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengextern const char *__event_name(int type, u64 config);
32e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
33e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengextern int parse_events(const struct option *opt, const char *str, int unset);
34e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengextern int parse_filter(const struct option *opt, const char *str, int unset);
35e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
36e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define EVENTS_HELP_MAX (128*1024)
37e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
38e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid print_events(const char *event_glob);
39e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid print_events_type(u8 type);
40e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid print_tracepoint_events(const char *subsys_glob, const char *event_glob);
41e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengint print_hwcache_events(const char *event_glob);
42e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengextern int is_valid_tracepoint(const char *event_string);
43e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
44e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengextern char debugfs_path[];
45e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengextern int valid_debugfs_mount(const char *debugfs);
46e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng
47e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#endif /* __PERF_PARSE_EVENTS_H */
48