perf tools: Introduce struct hist_entry_iter
authorNamhyung Kim <namhyung@kernel.org>
Wed, 30 Oct 2013 00:40:34 +0000 (09:40 +0900)
committerJiri Olsa <jolsa@kernel.org>
Sun, 1 Jun 2014 12:34:55 +0000 (14:34 +0200)
commit69bcb019fc809874f518559c8e5b0a90176f0532
tree0d1bf258aa9a06c23981ea9220fe5360d1280ed1
parent1844dbcbe78503e0f4a8996d69da725d5e7a5177
perf tools: Introduce struct hist_entry_iter

There're some duplicate code when adding hist entries.  They are
different in that some have branch info or mem info but generally do
same thing.  So introduce new struct hist_entry_iter and add callbacks
to customize each case in general way.

The new perf_evsel__add_entry() function will look like:

  iter->prepare_entry();
  iter->add_single_entry();

  while (iter->next_entry())
    iter->add_next_entry();

  iter->finish_entry();

This will help further work like the cumulative callchain patchset.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arun Sharma <asharma@fb.com>
Tested-by: Rodrigo Campos <rodrigo@sdfg.com.ar>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1401335910-16832-3-git-send-email-namhyung@kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
tools/perf/builtin-report.c
tools/perf/tests/hists_filter.c
tools/perf/tests/hists_output.c
tools/perf/util/hist.c
tools/perf/util/hist.h