return 0;
 }
 
-int bpf__foreach_tev(struct bpf_object *obj,
-                    bpf_prog_iter_callback_t func,
-                    void *arg)
+int bpf__foreach_event(struct bpf_object *obj,
+                      bpf_prog_iter_callback_t func,
+                      void *arg)
 {
        struct bpf_program *prog;
        int err;
                                return fd;
                        }
 
-                       err = (*func)(tev, fd, arg);
+                       err = (*func)(tev->group, tev->event, fd, arg);
                        if (err) {
                                pr_debug("bpf: call back failed, stop iterate\n");
                                return err;
 
 struct parse_events_term;
 #define PERF_BPF_PROBE_GROUP "perf_bpf_probe"
 
-typedef int (*bpf_prog_iter_callback_t)(struct probe_trace_event *tev,
+typedef int (*bpf_prog_iter_callback_t)(const char *group, const char *event,
                                        int fd, void *arg);
 
 #ifdef HAVE_LIBBPF_SUPPORT
 int bpf__load(struct bpf_object *obj);
 int bpf__strerror_load(struct bpf_object *obj, int err,
                       char *buf, size_t size);
-int bpf__foreach_tev(struct bpf_object *obj,
-                    bpf_prog_iter_callback_t func, void *arg);
+int bpf__foreach_event(struct bpf_object *obj,
+                      bpf_prog_iter_callback_t func, void *arg);
 
 int bpf__config_obj(struct bpf_object *obj, struct parse_events_term *term,
                    struct perf_evlist *evlist, int *error_pos);
 static inline int bpf__load(struct bpf_object *obj __maybe_unused) { return 0; }
 
 static inline int
-bpf__foreach_tev(struct bpf_object *obj __maybe_unused,
-                bpf_prog_iter_callback_t func __maybe_unused,
-                void *arg __maybe_unused)
+bpf__foreach_event(struct bpf_object *obj __maybe_unused,
+                  bpf_prog_iter_callback_t func __maybe_unused,
+                  void *arg __maybe_unused)
 {
        return 0;
 }
 
        struct list_head *head_config;
 };
 
-static int add_bpf_event(struct probe_trace_event *tev, int fd,
+static int add_bpf_event(const char *group, const char *event, int fd,
                         void *_param)
 {
        LIST_HEAD(new_evsels);
        int err;
 
        pr_debug("add bpf event %s:%s and attach bpf program %d\n",
-                tev->group, tev->event, fd);
+                group, event, fd);
 
-       err = parse_events_add_tracepoint(&new_evsels, &evlist->idx, tev->group,
-                                         tev->event, evlist->error,
+       err = parse_events_add_tracepoint(&new_evsels, &evlist->idx, group,
+                                         event, evlist->error,
                                          param->head_config);
        if (err) {
                struct perf_evsel *evsel, *tmp;
 
                pr_debug("Failed to add BPF event %s:%s\n",
-                        tev->group, tev->event);
+                        group, event);
                list_for_each_entry_safe(evsel, tmp, &new_evsels, node) {
                        list_del(&evsel->node);
                        perf_evsel__delete(evsel);
                }
                return err;
        }
-       pr_debug("adding %s:%s\n", tev->group, tev->event);
+       pr_debug("adding %s:%s\n", group, event);
 
        list_for_each_entry(pos, &new_evsels, node) {
                pr_debug("adding %s:%s to %p\n",
-                        tev->group, tev->event, pos);
+                        group, event, pos);
                pos->bpf_fd = fd;
        }
        list_splice(&new_evsels, list);
                goto errout;
        }
 
-       err = bpf__foreach_tev(obj, add_bpf_event, ¶m);
+       err = bpf__foreach_event(obj, add_bpf_event, ¶m);
        if (err) {
                snprintf(errbuf, sizeof(errbuf),
                         "Attach events in BPF object failed");