return 0;
}
-static int perf_session__process_event(struct perf_session *session,
- event_t *event,
- struct perf_event_ops *ops,
- u64 file_offset)
+static int perf_session__process_user_event(struct perf_session *session, event_t *event,
+ struct perf_event_ops *ops, u64 file_offset)
{
- struct sample_data sample;
- int ret;
-
- if (session->header.needs_swap && event__swap_ops[event->header.type])
- event__swap_ops[event->header.type](event);
-
- if (event->header.type >= PERF_RECORD_HEADER_MAX)
- return -EINVAL;
-
- hists__inc_nr_events(&session->hists, event->header.type);
-
- if (event->header.type >= PERF_RECORD_USER_TYPE_START)
- dump_event(session, event, file_offset, NULL);
+ dump_event(session, event, file_offset, NULL);
/* These events are processed right away */
switch (event->header.type) {
case PERF_RECORD_FINISHED_ROUND:
return ops->finished_round(event, session, ops);
default:
- break;
+ return -EINVAL;
}
+}
+
+static int perf_session__process_event(struct perf_session *session,
+ event_t *event,
+ struct perf_event_ops *ops,
+ u64 file_offset)
+{
+ struct sample_data sample;
+ int ret;
+
+ if (session->header.needs_swap && event__swap_ops[event->header.type])
+ event__swap_ops[event->header.type](event);
+
+ if (event->header.type >= PERF_RECORD_HEADER_MAX)
+ return -EINVAL;
+
+ hists__inc_nr_events(&session->hists, event->header.type);
+
+ if (event->header.type >= PERF_RECORD_USER_TYPE_START)
+ return perf_session__process_user_event(session, event, ops, file_offset);
/*
* For all kernel events we get the sample data