Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934140Ab3GQRys (ORCPT ); Wed, 17 Jul 2013 13:54:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:1887 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934115Ab3GQRvB (ORCPT ); Wed, 17 Jul 2013 13:51:01 -0400 From: Jiri Olsa To: linux-kernel@vger.kernel.org Cc: Jiri Olsa , Corey Ashford , Frederic Weisbecker , Ingo Molnar , Namhyung Kim , Paul Mackerras , Peter Zijlstra , Arnaldo Carvalho de Melo , Andi Kleen , David Ahern Subject: [PATCH 14/23] perf tools: Add perf data version 3 header swap Date: Wed, 17 Jul 2013 19:49:54 +0200 Message-Id: <1374083403-14591-15-git-send-email-jolsa@redhat.com> In-Reply-To: <1374083403-14591-1-git-send-email-jolsa@redhat.com> References: <1374083403-14591-1-git-send-email-jolsa@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2127 Lines: 69 Adding perf data version 3 header swap same way as it's done for v2. Signed-off-by: Jiri Olsa Cc: Corey Ashford Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern --- 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 3f97ae1..5df73da 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -2564,13 +2564,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, @@ -2590,7 +2605,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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/