Messages in this thread Patch in this message | | | From | Jiri Olsa <> | Subject | [PATCH 15/25] perf tools: Add perf data version 3 header swap | Date | Sun, 1 Sep 2013 12:36:26 +0200 |
| |
Adding perf data version 3 header swap same way as it's done for v2.
Signed-off-by: Jiri Olsa <jolsa@redhat.com> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: David Ahern <dsahern@gmail.com> --- tools/perf/util/header.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index db6b131..77d588f 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -2568,13 +2568,28 @@ static int swap_header_v2(struct perf_file_header *header) return 0; } -static int swap_header(struct perf_file_header *header) +static int swap_header_v3(struct perf_file_header *header) +{ + struct perf_file_header_v3 *v3 = &header->v3; + + mem_bswap_64(v3, offsetof(struct perf_file_header_v3, + adds_features)); + + swap_features(v3->adds_features); + return 0; +} + +static int swap_header(struct perf_header *ph, + struct perf_file_header *header) { /* swap the generic part */ mem_bswap_64(header, offsetof(struct perf_file_header, v2)); /* version specific swap */ - return swap_header_v2(header); + if (ph->version <= PERF_HEADER_VERSION_2) + return swap_header_v2(header); + + return swap_header_v3(header); } int perf_file_header__read(struct perf_file_header *header, @@ -2594,7 +2609,7 @@ int perf_file_header__read(struct perf_file_header *header, return -1; } - return ph->needs_swap ? swap_header(header) : 0; + return ph->needs_swap ? swap_header(ph, header) : 0; } static int perf_file_section__process(struct perf_file_section *section, -- 1.7.11.7
| |