return ret;
 }
 
-int parse_events(struct evlist *evlist, const char *str,
-                struct parse_events_error *err)
+int __parse_events(struct evlist *evlist, const char *str,
+                  struct parse_events_error *err, struct perf_pmu *fake_pmu)
 {
        struct parse_events_state parse_state = {
-               .list   = LIST_HEAD_INIT(parse_state.list),
-               .idx    = evlist->core.nr_entries,
-               .error  = err,
-               .evlist = evlist,
-               .stoken = PE_START_EVENTS,
+               .list     = LIST_HEAD_INIT(parse_state.list),
+               .idx      = evlist->core.nr_entries,
+               .error    = err,
+               .evlist   = evlist,
+               .stoken   = PE_START_EVENTS,
+               .fake_pmu = fake_pmu,
        };
        int ret;
 
 
 
 int parse_events_option(const struct option *opt, const char *str, int unset);
 int parse_events_option_new_evlist(const struct option *opt, const char *str, int unset);
-int parse_events(struct evlist *evlist, const char *str,
-                struct parse_events_error *error);
+int __parse_events(struct evlist *evlist, const char *str, struct parse_events_error *error,
+                  struct perf_pmu *fake_pmu);
+
+static inline int parse_events(struct evlist *evlist, const char *str,
+                              struct parse_events_error *err)
+{
+       return __parse_events(evlist, str, err, NULL);
+}
+
 int parse_events_terms(struct list_head *terms, const char *str);
 int parse_filter(const struct option *opt, const char *str, int unset);
 int exclude_perf(const struct option *opt, const char *arg, int unset);