From patchwork Tue Mar 19 11:19:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tzvetomir Stoyanov X-Patchwork-Id: 10859411 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 46594139A for ; Tue, 19 Mar 2019 11:19:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2DF0F2869D for ; Tue, 19 Mar 2019 11:19:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 227C929138; Tue, 19 Mar 2019 11:19:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A22802869D for ; Tue, 19 Mar 2019 11:19:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726743AbfCSLT3 (ORCPT ); Tue, 19 Mar 2019 07:19:29 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:37121 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726703AbfCSLT3 (ORCPT ); Tue, 19 Mar 2019 07:19:29 -0400 Received: by mail-wr1-f65.google.com with SMTP id y15so20568687wro.4 for ; Tue, 19 Mar 2019 04:19:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=K5TxoNiYuP8LFxE4NWOwT4yZabbiWyeIomT/r9DFxQk=; b=FTCoa2xk15dSOyj40g+POG68Zk0WUK0TL/H5+rnchqhIsGc1vEjakr7V822l9+/xeD OEfCsOy8QWlnC0ioBJMFKl8Zoj384Qwjtzj25WcMiZkwvCKuDZLZE25LhtcBh+nHs+3a NRMDUFaLrsBFutuKv1CMlgdYLhWgYzNwB4l07kzKYJPBCpMjoSt+0wPAyXUkVFRXaPx9 WwsYY2Jq2Z6hsoM9w4IQOk8UCE8/QZWWXciCf3T3EwAVGq2rMrG4ef0AolVA4D+S1eDQ C8st1FvZyHxFbWxLR5tAKESnjWKS8ZvaT4dzoJ4VgjA1TGiWXSPm/MxNhCIHif3+m9D2 LoEA== X-Gm-Message-State: APjAAAVKxWiOqYmAQKuCFUpLS8LIH+9MpYWmYjBx0Cw3kVo+myvQExxC ViIdO+MrMu09hZlH1Gm3r5A= X-Google-Smtp-Source: APXvYqxaD/bCTiYAKsUc6OltANEzsVfKnst/s9vioEJVuHmhzxiEO2dB3mJ8hncNgM1BBpi3YjctCw== X-Received: by 2002:a5d:444d:: with SMTP id x13mr16921181wrr.153.1552994367576; Tue, 19 Mar 2019 04:19:27 -0700 (PDT) Received: from oberon.eng.vmware.com ([146.247.46.5]) by smtp.gmail.com with ESMTPSA id v12sm3064407wml.29.2019.03.19.04.19.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 19 Mar 2019 04:19:26 -0700 (PDT) From: Tzvetomir Stoyanov To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org Subject: [PATCH 1/3] tools/lib/traceevent: Change description of few APIs Date: Tue, 19 Mar 2019 13:19:22 +0200 Message-Id: <20190319111924.17443-2-tstoyanov@vmware.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190319111924.17443-1-tstoyanov@vmware.com> References: <20190319111924.17443-1-tstoyanov@vmware.com> MIME-Version: 1.0 Sender: linux-trace-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-trace-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP APIs descriptions should describe the purpose of the function, its parameters and return value. While working on man pages implementation, I noticed mismatches in the descriptions of few APIs. This patch changes the description of these APIs, making them consistent with the man pages: tep_print_num_field(), tep_print_func_field(), tep_get_header_page_size(), tep_get_long_size(), tep_set_long_size(), tep_get_page_size() and tep_set_page_size(). Signed-off-by: Tzvetomir Stoyanov Reviewed-by: Matt Helsley --- tools/lib/traceevent/event-parse-api.c | 20 ++++++++++---------- tools/lib/traceevent/event-parse.c | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tools/lib/traceevent/event-parse-api.c b/tools/lib/traceevent/event-parse-api.c index d463761a58f4..3686a221e981 100644 --- a/tools/lib/traceevent/event-parse-api.c +++ b/tools/lib/traceevent/event-parse-api.c @@ -43,8 +43,8 @@ int tep_get_events_count(struct tep_handle *tep) * @flag: flag, or combination of flags to be set * can be any combination from enum tep_flag * - * This sets a flag or mbination of flags from enum tep_flag - */ + * This sets a flag or combination of flags from enum tep_flag + */ void tep_set_flag(struct tep_handle *tep, int flag) { if(tep) @@ -140,10 +140,10 @@ void tep_set_cpus(struct tep_handle *pevent, int cpus) } /** - * tep_get_long_size - get the size of a long integer on the current machine + * tep_get_long_size - get the size of a long integer on the traced machine * @pevent: a handle to the tep_handle * - * This returns the size of a long integer on the current machine + * This returns the size of a long integer on the traced machine * If @pevent is NULL, 0 is returned. */ int tep_get_long_size(struct tep_handle *pevent) @@ -154,11 +154,11 @@ int tep_get_long_size(struct tep_handle *pevent) } /** - * tep_set_long_size - set the size of a long integer on the current machine + * tep_set_long_size - set the size of a long integer on the traced machine * @pevent: a handle to the tep_handle * @size: size, in bytes, of a long integer * - * This sets the size of a long integer on the current machine + * This sets the size of a long integer on the traced machine */ void tep_set_long_size(struct tep_handle *pevent, int long_size) { @@ -167,10 +167,10 @@ void tep_set_long_size(struct tep_handle *pevent, int long_size) } /** - * tep_get_page_size - get the size of a memory page on the current machine + * tep_get_page_size - get the size of a memory page on the traced machine * @pevent: a handle to the tep_handle * - * This returns the size of a memory page on the current machine + * This returns the size of a memory page on the traced machine * If @pevent is NULL, 0 is returned. */ int tep_get_page_size(struct tep_handle *pevent) @@ -181,11 +181,11 @@ int tep_get_page_size(struct tep_handle *pevent) } /** - * tep_set_page_size - set the size of a memory page on the current machine + * tep_set_page_size - set the size of a memory page on the traced machine * @pevent: a handle to the tep_handle * @_page_size: size of a memory page, in bytes * - * This sets the size of a memory page on the current machine + * This sets the size of a memory page on the traced machine */ void tep_set_page_size(struct tep_handle *pevent, int _page_size) { diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c index 87494c7c619d..69af77896283 100644 --- a/tools/lib/traceevent/event-parse.c +++ b/tools/lib/traceevent/event-parse.c @@ -6386,7 +6386,7 @@ int tep_get_any_field_val(struct trace_seq *s, struct tep_event *event, * @record: The record with the field name. * @err: print default error if failed. * - * Returns: 0 on success, -1 field not found, or 1 if buffer is full. + * Returns: 1 on success, -1 field not found, or 0 if buffer is full. */ int tep_print_num_field(struct trace_seq *s, const char *fmt, struct tep_event *event, const char *name, @@ -6418,7 +6418,7 @@ int tep_print_num_field(struct trace_seq *s, const char *fmt, * @record: The record with the field name. * @err: print default error if failed. * - * Returns: 0 on success, -1 field not found, or 1 if buffer is full. + * Returns: 1 on success, -1 field not found, or 0 if buffer is full. */ int tep_print_func_field(struct trace_seq *s, const char *fmt, struct tep_event *event, const char *name, From patchwork Tue Mar 19 11:19:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tzvetomir Stoyanov X-Patchwork-Id: 10859413 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A23F817EF for ; Tue, 19 Mar 2019 11:19:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8956E2869D for ; Tue, 19 Mar 2019 11:19:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7DBD529138; Tue, 19 Mar 2019 11:19:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 182722869D for ; Tue, 19 Mar 2019 11:19:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726703AbfCSLTa (ORCPT ); Tue, 19 Mar 2019 07:19:30 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:40335 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725862AbfCSLTa (ORCPT ); Tue, 19 Mar 2019 07:19:30 -0400 Received: by mail-wm1-f66.google.com with SMTP id u10so13544765wmj.5 for ; Tue, 19 Mar 2019 04:19:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JJ7XgkX73S4IYLWeLBZAaa70aOYZgQ3/NmBpXdf7oxc=; b=nuD+O8IPDmL/2R+bCx+O0PID7KJ+pCccWQc44NmLcVRyfm6R9w9T3x2J0WSmDy13Ht xoCVLuNlYE9BbsFqq0yUYCxZ6QVurHcIpwowc/Kb+F8pqYkHMDwDjwxt5Nb9zUM60Mm4 ZH9k9XOoT4Vq9B2S18Rk1KmmwSOo2QQMhKNb2MgO4AKiXUkmG5clnAvNzOUEfzEmuOLe ZrIWrLjVqsct2n4Al425csgiDUlrmDFtB9cve/9Qj9l33xZQC+drpI2NW5ExWSL1vSvc GO6h/Lka/Pvz7YppYYdH7v1BjYC4edKiLS1fAjxOZs86h9trxdRqhp3/4fsnKfUoXLW5 AQVA== X-Gm-Message-State: APjAAAUTGmuUI3vgtQ21S55plEG0kYOXvyry+mdsiBQeIlwqEhi2SPbK 89yybLDyxcAxdld9OXA4MPgQfAyT X-Google-Smtp-Source: APXvYqzB5aT0FGmiPvvK0hOgWq14K2E+BO3sZJPSpteE9x8HOZut379PjDzkMcSqJMxnyoQ1Zd+Jaw== X-Received: by 2002:a1c:7dd7:: with SMTP id y206mr1858226wmc.81.1552994368551; Tue, 19 Mar 2019 04:19:28 -0700 (PDT) Received: from oberon.eng.vmware.com ([146.247.46.5]) by smtp.gmail.com with ESMTPSA id v12sm3064407wml.29.2019.03.19.04.19.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 19 Mar 2019 04:19:27 -0700 (PDT) From: Tzvetomir Stoyanov To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org Subject: [PATCH 2/3] tools/lib/traceevent: Coding style fixes Date: Tue, 19 Mar 2019 13:19:23 +0200 Message-Id: <20190319111924.17443-3-tstoyanov@vmware.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190319111924.17443-1-tstoyanov@vmware.com> References: <20190319111924.17443-1-tstoyanov@vmware.com> MIME-Version: 1.0 Sender: linux-trace-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-trace-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Fixed few coding style problems in event-parse-api.c Signed-off-by: Tzvetomir Stoyanov Reviewed-by: Matt Helsley --- tools/lib/traceevent/event-parse-api.c | 30 +++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tools/lib/traceevent/event-parse-api.c b/tools/lib/traceevent/event-parse-api.c index 3686a221e981..3716a9142aef 100644 --- a/tools/lib/traceevent/event-parse-api.c +++ b/tools/lib/traceevent/event-parse-api.c @@ -32,7 +32,7 @@ struct tep_event *tep_get_first_event(struct tep_handle *tep) */ int tep_get_events_count(struct tep_handle *tep) { - if(tep) + if (tep) return tep->nr_events; return 0; } @@ -47,7 +47,7 @@ int tep_get_events_count(struct tep_handle *tep) */ void tep_set_flag(struct tep_handle *tep, int flag) { - if(tep) + if (tep) tep->flags |= flag; } @@ -108,7 +108,7 @@ tep_data2host8(struct tep_handle *pevent, unsigned long long data) */ int tep_get_header_page_size(struct tep_handle *pevent) { - if(pevent) + if (pevent) return pevent->header_page_size_size; return 0; } @@ -122,7 +122,7 @@ int tep_get_header_page_size(struct tep_handle *pevent) */ int tep_get_cpus(struct tep_handle *pevent) { - if(pevent) + if (pevent) return pevent->cpus; return 0; } @@ -135,7 +135,7 @@ int tep_get_cpus(struct tep_handle *pevent) */ void tep_set_cpus(struct tep_handle *pevent, int cpus) { - if(pevent) + if (pevent) pevent->cpus = cpus; } @@ -148,7 +148,7 @@ void tep_set_cpus(struct tep_handle *pevent, int cpus) */ int tep_get_long_size(struct tep_handle *pevent) { - if(pevent) + if (pevent) return pevent->long_size; return 0; } @@ -162,7 +162,7 @@ int tep_get_long_size(struct tep_handle *pevent) */ void tep_set_long_size(struct tep_handle *pevent, int long_size) { - if(pevent) + if (pevent) pevent->long_size = long_size; } @@ -175,7 +175,7 @@ void tep_set_long_size(struct tep_handle *pevent, int long_size) */ int tep_get_page_size(struct tep_handle *pevent) { - if(pevent) + if (pevent) return pevent->page_size; return 0; } @@ -189,7 +189,7 @@ int tep_get_page_size(struct tep_handle *pevent) */ void tep_set_page_size(struct tep_handle *pevent, int _page_size) { - if(pevent) + if (pevent) pevent->page_size = _page_size; } @@ -202,7 +202,7 @@ void tep_set_page_size(struct tep_handle *pevent, int _page_size) */ int tep_file_bigendian(struct tep_handle *pevent) { - if(pevent) + if (pevent) return pevent->file_bigendian; return 0; } @@ -216,7 +216,7 @@ int tep_file_bigendian(struct tep_handle *pevent) */ void tep_set_file_bigendian(struct tep_handle *pevent, enum tep_endian endian) { - if(pevent) + if (pevent) pevent->file_bigendian = endian; } @@ -229,7 +229,7 @@ void tep_set_file_bigendian(struct tep_handle *pevent, enum tep_endian endian) */ int tep_is_host_bigendian(struct tep_handle *pevent) { - if(pevent) + if (pevent) return pevent->host_bigendian; return 0; } @@ -243,7 +243,7 @@ int tep_is_host_bigendian(struct tep_handle *pevent) */ void tep_set_host_bigendian(struct tep_handle *pevent, enum tep_endian endian) { - if(pevent) + if (pevent) pevent->host_bigendian = endian; } @@ -256,7 +256,7 @@ void tep_set_host_bigendian(struct tep_handle *pevent, enum tep_endian endian) */ int tep_is_latency_format(struct tep_handle *pevent) { - if(pevent) + if (pevent) return pevent->latency_format; return 0; } @@ -270,6 +270,6 @@ int tep_is_latency_format(struct tep_handle *pevent) */ void tep_set_latency_format(struct tep_handle *pevent, int lat) { - if(pevent) + if (pevent) pevent->latency_format = lat; } From patchwork Tue Mar 19 11:19:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tzvetomir Stoyanov X-Patchwork-Id: 10859415 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C30CA17EF for ; Tue, 19 Mar 2019 11:19:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA2D62869D for ; Tue, 19 Mar 2019 11:19:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9EE6829138; Tue, 19 Mar 2019 11:19:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E20622869D for ; Tue, 19 Mar 2019 11:19:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725862AbfCSLTb (ORCPT ); Tue, 19 Mar 2019 07:19:31 -0400 Received: from mail-wr1-f46.google.com ([209.85.221.46]:33581 "EHLO mail-wr1-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726776AbfCSLTb (ORCPT ); Tue, 19 Mar 2019 07:19:31 -0400 Received: by mail-wr1-f46.google.com with SMTP id q1so4922205wrp.0 for ; Tue, 19 Mar 2019 04:19:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2CSUfHKTHYtyVXeZsM1nxAYW9oSZdAoexgGC4jYebcg=; b=JsYFIEHYcb0tYyBRl6ZmL3OcnAchyriU2qVXIkegHDVbUjHjg9AO0P21LOVwpt2wXe ES+ZGRQAtOvN63Mjzt95NW0gdnS3hW1yNIFJhym3NfB3+DJ04C/7jZ0v+vnglysMyyAy Hg+EdHRYwQIXnAxY1UFInfBOG3FErFD8YGy4qc15FtMFysls/kNWuyZ7CECisX9Df8eo lhWRg79czz3JHcK040is1EFswFcapJGjxb1JDSY3zHqlmKpFJV6ORJraNPHAAUVCv6HU IdN53SV3w19gAeNp7/An2/vJbl9Ak+B+PYmcpRRplF1DzduFIA41geVQABMDcmJAOkHt l+og== X-Gm-Message-State: APjAAAXPrcTI5VpWRFiylPFsUimLH2kaDti+V/jKw6KCBiu6HTRh5zbP FzIi35OK9jX9P/S00/Zj9YbTbqVq X-Google-Smtp-Source: APXvYqyWyj2w55zyqpAY/k1nGHKqPBO/EDNAIk86Re6lAn6+OvPMgCvJ7ip6a1zpx4wjgPZSeK+pwA== X-Received: by 2002:a5d:6384:: with SMTP id p4mr5794123wru.208.1552994369430; Tue, 19 Mar 2019 04:19:29 -0700 (PDT) Received: from oberon.eng.vmware.com ([146.247.46.5]) by smtp.gmail.com with ESMTPSA id v12sm3064407wml.29.2019.03.19.04.19.28 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 19 Mar 2019 04:19:28 -0700 (PDT) From: Tzvetomir Stoyanov To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org Subject: [PATCH 3/3] tools/lib/traceevent: Implement new traceevent APIs for accessing struct tep_handler fields Date: Tue, 19 Mar 2019 13:19:24 +0200 Message-Id: <20190319111924.17443-4-tstoyanov@vmware.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190319111924.17443-1-tstoyanov@vmware.com> References: <20190319111924.17443-1-tstoyanov@vmware.com> MIME-Version: 1.0 Sender: linux-trace-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-trace-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP As struct tep_handler definition is not exposed as part of libtraceevent API, its fields cannot be accessed directly by the library users. This patch implements new APIs, which can be used to access the struct tep_handler fields: tep_reset_flag(), tep_check_flag(), tep_set_parsing_failures(), tep_get_parsing_failures() tep_get_header_page_ts_size(), tep_is_old_format(), tep_set_print_raw() and tep_set_test_filters() Signed-off-by: Tzvetomir Stoyanov --- tools/lib/traceevent/event-parse-api.c | 140 +++++++++++++++++++++-- tools/lib/traceevent/event-parse-local.h | 2 + tools/lib/traceevent/event-parse.h | 12 +- tools/lib/traceevent/plugin_kvm.c | 2 +- 4 files changed, 146 insertions(+), 10 deletions(-) diff --git a/tools/lib/traceevent/event-parse-api.c b/tools/lib/traceevent/event-parse-api.c index 3716a9142aef..2bd2bf7c499d 100644 --- a/tools/lib/traceevent/event-parse-api.c +++ b/tools/lib/traceevent/event-parse-api.c @@ -8,6 +8,22 @@ #include "event-parse-local.h" #include "event-utils.h" +/** + * tep_get_event - returns the event with the given index + * @tep: a handle to the tep_handle + * @index: index of the requested event, in the range 0 .. nr_events + * + * This returns pointer to the element of the events array with the given index + * If @tep is NULL, or @index is not in the range 0 .. nr_events, NULL is returned. + */ +struct tep_event *tep_get_event(struct tep_handle *tep, int index) +{ + if (tep && tep->events && index < tep->nr_events) + return tep->events[index]; + + return NULL; +} + /** * tep_get_first_event - returns the first event in the events array * @tep: a handle to the tep_handle @@ -17,10 +33,7 @@ */ struct tep_event *tep_get_first_event(struct tep_handle *tep) { - if (tep && tep->events) - return tep->events[0]; - - return NULL; + return tep_get_event(tep, 0); } /** @@ -45,12 +58,41 @@ int tep_get_events_count(struct tep_handle *tep) * * This sets a flag or combination of flags from enum tep_flag */ -void tep_set_flag(struct tep_handle *tep, int flag) +void tep_set_flag(struct tep_handle *tep, enum tep_flag flag) { if (tep) tep->flags |= flag; } +/** + * tep_reset_flag - reset event parser flag + * @tep: a handle to the tep_handle + * @flag: flag, or combination of flags to be reseted + * can be any combination from enum tep_flag + * + * This resets a flag or combination of flags from enum tep_flag + */ +void tep_reset_flag(struct tep_handle *tep, enum tep_flag flag) +{ + if (tep) + tep->flags &= ~flag; +} + +/** + * tep_check_flag - check the state of event parser flag + * @tep: a handle to the tep_handle + * @flag: flag, or combination of flags to be checked + * can be any combination from enum tep_flag + * + * This checks the state of a flag or combination of flags from enum tep_flag + */ +int tep_check_flag(struct tep_handle *tep, enum tep_flag flag) +{ + if (tep) + return (tep->flags & flag); + return 0; +} + unsigned short tep_data2host2(struct tep_handle *pevent, unsigned short data) { unsigned short swap; @@ -113,6 +155,20 @@ int tep_get_header_page_size(struct tep_handle *pevent) return 0; } +/** + * tep_get_header_page_ts_size - get size of the time stamp in the header page + * @tep: a handle to the tep_handle + * + * This returns size of the time stamp in the header page + * If @tep is NULL, 0 is returned. + */ +int tep_get_header_page_ts_size(struct tep_handle *tep) +{ + if (tep) + return tep->header_page_ts_size; + return 0; +} + /** * tep_get_cpus - get the number of CPUs * @pevent: a handle to the tep_handle @@ -194,13 +250,13 @@ void tep_set_page_size(struct tep_handle *pevent, int _page_size) } /** - * tep_file_bigendian - get if the file is in big endian order + * tep_is_file_bigendian - get if the file is in big endian order * @pevent: a handle to the tep_handle * * This returns if the file is in big endian order * If @pevent is NULL, 0 is returned. */ -int tep_file_bigendian(struct tep_handle *pevent) +int tep_is_file_bigendian(struct tep_handle *pevent) { if (pevent) return pevent->file_bigendian; @@ -273,3 +329,73 @@ void tep_set_latency_format(struct tep_handle *pevent, int lat) if (pevent) pevent->latency_format = lat; } + +/** + * tep_set_parsing_failures - set parsing failures flag + * @tep: a handle to the tep_handle + * @parsing_failures: the new value of the parsing_failures flag + * + * This sets flag "parsing_failures" to the given count + */ +void tep_set_parsing_failures(struct tep_handle *tep, int parsing_failures) +{ + if (tep) + tep->parsing_failures = parsing_failures; +} + +/** + * tep_get_parsing_failures - get the parsing failures flag + * @tep: a handle to the tep_handle + * + * This returns value of flag "parsing_failures" + * If @tep is NULL, 0 is returned. + */ +int tep_get_parsing_failures(struct tep_handle *tep) +{ + if (tep) + return tep->parsing_failures; + return 0; +} + +/** + * tep_is_old_format - get if an old kernel is used + * @tep: a handle to the tep_handle + * + * This returns 1, if an old kernel is used to generate the tracing events or + * 0 if a new kernel is used. Old kernels did not have header page info. + * If @pevent is NULL, 0 is returned. + */ +int tep_is_old_format(struct tep_handle *tep) +{ + if (tep) + return tep->old_format; + return 0; +} + +/** + * tep_set_print_raw - set a flag to force print in raw format + * @tep: a handle to the tep_handle + * @print_raw: the new value of the print_raw flag + * + * This sets a flag to force print in raw format + */ +void tep_set_print_raw(struct tep_handle *tep, int print_raw) +{ + if (tep) + tep->print_raw = print_raw; +} + +/** + * tep_set_print_raw - set a flag to test a filter string + * @tep: a handle to the tep_handle + * @test_filters: the new value of the test_filters flag + * + * This sets a flag to fjust test a filter string. If this flag is set, + * when a filter string is added, then it will print the filters strings + * that were created and exit. + */ +void tep_set_test_filters(struct tep_handle *tep, int test_filters) +{ + if (tep) + tep->test_filters = test_filters; +} diff --git a/tools/lib/traceevent/event-parse-local.h b/tools/lib/traceevent/event-parse-local.h index 35833ee32d6c..c5c8eb4c4ab7 100644 --- a/tools/lib/traceevent/event-parse-local.h +++ b/tools/lib/traceevent/event-parse-local.h @@ -83,6 +83,8 @@ struct tep_handle { struct event_handler *handlers; struct tep_function_handler *func_handlers; + int parsing_failures; + /* cache */ struct tep_event *last_event; diff --git a/tools/lib/traceevent/event-parse.h b/tools/lib/traceevent/event-parse.h index aec48f2aea8a..f695688f38fd 100644 --- a/tools/lib/traceevent/event-parse.h +++ b/tools/lib/traceevent/event-parse.h @@ -408,7 +408,9 @@ void tep_print_plugins(struct trace_seq *s, /* tep_handle */ typedef char *(tep_func_resolver_t)(void *priv, unsigned long long *addrp, char **modp); -void tep_set_flag(struct tep_handle *tep, int flag); +void tep_set_flag(struct tep_handle *tep, enum tep_flag flag); +void tep_reset_flag(struct tep_handle *tep, enum tep_flag flag); +int tep_check_flag(struct tep_handle *tep, enum tep_flag flag); static inline int tep_host_bigendian(void) { @@ -558,13 +560,19 @@ int tep_get_long_size(struct tep_handle *pevent); void tep_set_long_size(struct tep_handle *pevent, int long_size); int tep_get_page_size(struct tep_handle *pevent); void tep_set_page_size(struct tep_handle *pevent, int _page_size); -int tep_file_bigendian(struct tep_handle *pevent); +int tep_is_file_bigendian(struct tep_handle *pevent); void tep_set_file_bigendian(struct tep_handle *pevent, enum tep_endian endian); int tep_is_host_bigendian(struct tep_handle *pevent); void tep_set_host_bigendian(struct tep_handle *pevent, enum tep_endian endian); int tep_is_latency_format(struct tep_handle *pevent); void tep_set_latency_format(struct tep_handle *pevent, int lat); int tep_get_header_page_size(struct tep_handle *pevent); +void tep_set_parsing_failures(struct tep_handle *tep, int parsing_failures); +int tep_get_parsing_failures(struct tep_handle *tep); +int tep_get_header_page_ts_size(struct tep_handle *tep); +int tep_is_old_format(struct tep_handle *pevent); +void tep_set_print_raw(struct tep_handle *tep, int print_raw); +void tep_set_test_filters(struct tep_handle *tep, int test_filters); struct tep_handle *tep_alloc(void); void tep_free(struct tep_handle *pevent); diff --git a/tools/lib/traceevent/plugin_kvm.c b/tools/lib/traceevent/plugin_kvm.c index 64b9c25a1fd3..754050eea467 100644 --- a/tools/lib/traceevent/plugin_kvm.c +++ b/tools/lib/traceevent/plugin_kvm.c @@ -389,7 +389,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct tep_record *record, * We can only use the structure if file is of the same * endianness. */ - if (tep_file_bigendian(event->pevent) == + if (tep_is_file_bigendian(event->pevent) == tep_is_host_bigendian(event->pevent)) { trace_seq_printf(s, "%u q%u%s %s%s %spae %snxe %swp%s%s%s",