linux/tools/perf/util/parse-events.h
<<
>>
Prefs
   1#ifndef __PERF_PARSE_EVENTS_H
   2#define __PERF_PARSE_EVENTS_H
   3/*
   4 * Parse symbolic events/counts passed in as options:
   5 */
   6
   7#include "../../../include/linux/perf_event.h"
   8
   9struct list_head;
  10struct perf_evsel;
  11struct perf_evlist;
  12
  13struct option;
  14
  15struct tracepoint_path {
  16        char *system;
  17        char *name;
  18        struct tracepoint_path *next;
  19};
  20
  21extern struct tracepoint_path *tracepoint_id_to_path(u64 config);
  22extern bool have_tracepoints(struct list_head *evlist);
  23
  24const char *event_type(int type);
  25const char *event_name(struct perf_evsel *event);
  26extern const char *__event_name(int type, u64 config);
  27
  28extern int parse_events_option(const struct option *opt, const char *str,
  29                               int unset);
  30extern int parse_events(struct perf_evlist *evlist, const char *str,
  31                        int unset);
  32extern int parse_filter(const struct option *opt, const char *str, int unset);
  33
  34#define EVENTS_HELP_MAX (128*1024)
  35
  36enum {
  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
  49struct 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
  60int parse_events__is_hardcoded_term(struct parse_events__term *term);
  61int parse_events__new_term(struct parse_events__term **term, int type,
  62                           char *config, char *str, long num);
  63void parse_events__free_terms(struct list_head *terms);
  64int parse_events_modifier(struct list_head *list __used, char *str __used);
  65int parse_events_add_tracepoint(struct list_head *list, int *idx,
  66                                char *sys, char *event);
  67int parse_events_add_raw(struct perf_evlist *evlist, unsigned long config,
  68                         unsigned long config1, unsigned long config2,
  69                         char *mod);
  70int parse_events_add_numeric(struct list_head *list, int *idx,
  71                             unsigned long type, unsigned long config,
  72                             struct list_head *head_config);
  73int parse_events_add_cache(struct list_head *list, int *idx,
  74                           char *type, char *op_result1, char *op_result2);
  75int parse_events_add_breakpoint(struct list_head *list, int *idx,
  76                                void *ptr, char *type);
  77int parse_events_add_pmu(struct list_head *list, int *idx,
  78                         char *pmu , struct list_head *head_config);
  79void parse_events_update_lists(struct list_head *list_event,
  80                               struct list_head *list_all);
  81void parse_events_error(struct list_head *list_all,
  82                        struct list_head *list_event,
  83                        int *idx, char const *msg);
  84
  85void print_events(const char *event_glob);
  86void print_events_type(u8 type);
  87void print_tracepoint_events(const char *subsys_glob, const char *event_glob);
  88int print_hwcache_events(const char *event_glob);
  89extern int is_valid_tracepoint(const char *event_string);
  90
  91extern int valid_debugfs_mount(const char *debugfs);
  92
  93#endif /* __PERF_PARSE_EVENTS_H */
  94