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