From patchwork Mon Mar 25 14:50:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tzvetomir Stoyanov X-Patchwork-Id: 10869459 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 C17CA1708 for ; Mon, 25 Mar 2019 14:50:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AE4C429113 for ; Mon, 25 Mar 2019 14:50:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A282D293F1; Mon, 25 Mar 2019 14:50:44 +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 2E24629113 for ; Mon, 25 Mar 2019 14:50:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726203AbfCYOun (ORCPT ); Mon, 25 Mar 2019 10:50:43 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:55513 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729132AbfCYOuW (ORCPT ); Mon, 25 Mar 2019 10:50:22 -0400 Received: by mail-wm1-f68.google.com with SMTP id o25so9230445wmf.5 for ; Mon, 25 Mar 2019 07:50:21 -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=DfTGI147gOP1zUZ7cPqJPajjOS32Qiswra/va2aHFBE=; b=Y1mVd3wD57VRmjmW/LAu2+KMFASuuQqZ0tKlD/dmf8hO3bsJxEr3f6roSw+w9zcpWg jQrbsPCSkMklWCrpFDCHksHOQfFjDo8T71Jg5yutcHjBaufQM+Z3DvX3pUfiYzs1+OIq b0tL3I42ms46Ax3gnTiuS6CJw7rNdWipDUEkUGmaScVoss7ghK2dHpkPyYqq+aZnchqA vcR97osTdiz6qrngOTs7yOFbewH7GpY89618sKgTKcmcSWFc9odk+4lma5P9hfU2HRPW 12dQGMdiUm8ZnCoUP0yNgpyEcV6tjYiQYVrqMAj3EpDj6djcPe3bXM2annrrcGJhvvhw J/fA== X-Gm-Message-State: APjAAAVZ4KiPKkE9y4JIZlW2GAjCc7QGYcYRFn0eOTGM/GGaU95ZG1DR TeiWF3n99tBFRuasPexO85U23XtO X-Google-Smtp-Source: APXvYqx++q0ikVSibYesPreYoV1gToGKLNDmXaaVPWPIvyIzXkfu3VkQDlHKln+CtTv1DPKvMaH/QA== X-Received: by 2002:a1c:f61a:: with SMTP id w26mr12560539wmc.70.1553525420280; Mon, 25 Mar 2019 07:50:20 -0700 (PDT) Received: from oberon.eng.vmware.com ([146.247.46.5]) by smtp.gmail.com with ESMTPSA id 61sm24687595wre.50.2019.03.25.07.50.19 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 25 Mar 2019 07:50:19 -0700 (PDT) From: Tzvetomir Stoyanov To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org Subject: [PATCH v3 1/3] tools/lib/traceevent: Change description of few APIs Date: Mon, 25 Mar 2019 16:50:15 +0200 Message-Id: <20190325145017.30246-2-tstoyanov@vmware.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190325145017.30246-1-tstoyanov@vmware.com> References: <20190325145017.30246-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 --- tools/lib/traceevent/event-parse-api.c | 20 ++++++++++---------- tools/lib/traceevent/event-parse.c | 6 ++++-- 2 files changed, 14 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..e53c566be55d 100644 --- a/tools/lib/traceevent/event-parse.c +++ b/tools/lib/traceevent/event-parse.c @@ -6386,7 +6386,8 @@ 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 positive value on success, negative in case of an error, + * 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 +6419,8 @@ 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 positive value on success, negative in case of an error, + * 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 Mon Mar 25 14:50:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tzvetomir Stoyanov X-Patchwork-Id: 10869457 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 94F51139A for ; Mon, 25 Mar 2019 14:50:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8293028FF4 for ; Mon, 25 Mar 2019 14:50:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 75150293FD; Mon, 25 Mar 2019 14:50:44 +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 0DB5428FF4 for ; Mon, 25 Mar 2019 14:50:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729072AbfCYOun (ORCPT ); Mon, 25 Mar 2019 10:50:43 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:46687 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729123AbfCYOuX (ORCPT ); Mon, 25 Mar 2019 10:50:23 -0400 Received: by mail-wr1-f65.google.com with SMTP id o1so10468295wrs.13 for ; Mon, 25 Mar 2019 07:50:21 -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=MMcjDolwUIlfJ46Z2jbpOmudXhFSvkzax/M3IXLpV53r+PUWHRXkoYMivtfCdmpsSV LWOJLTm6k2a6L+falRn6Vmr1iHAr9XtZdnglcXda90yGQaSiRry1mGsTiOPll2+f+jtp o4b+6y+KSsto8ahFgUHlY9XMG5KRouImrkHhFKqtfkKCemgmU+xXdYyAnzIgK8q+3x9m DmFWmzxOAB20BUq/dgwt1v9WSIXargO0kG6zhYmdc/zzTuo4M8YRYLecqK2mM+8gFJwV ZDN8OozfD861A3k/ZGjRJzWnnIh/FMV9IvD7I++RAxc0UxC1tI4iN67d3DDg6KZw5IG/ Cxjg== X-Gm-Message-State: APjAAAU6mycbnIW88rKLwdiwc1+jiSEpkEAE7cng5kH8kMK+dPsUnOY+ hVQ5rdBRJOl4HP0B+MoFkzbOqFc5 X-Google-Smtp-Source: APXvYqyr8/qq5nsmevDs1Ml2I2zEV3UdbbGSAwGvb7zdMg4Kek8FiJuXDNUQf0YFMKl+enzRLOBkzQ== X-Received: by 2002:a5d:448b:: with SMTP id j11mr16651836wrq.218.1553525421248; Mon, 25 Mar 2019 07:50:21 -0700 (PDT) Received: from oberon.eng.vmware.com ([146.247.46.5]) by smtp.gmail.com with ESMTPSA id 61sm24687595wre.50.2019.03.25.07.50.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 25 Mar 2019 07:50:20 -0700 (PDT) From: Tzvetomir Stoyanov To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org Subject: [PATCH v3 2/3] tools/lib/traceevent: Coding style fixes Date: Mon, 25 Mar 2019 16:50:16 +0200 Message-Id: <20190325145017.30246-3-tstoyanov@vmware.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190325145017.30246-1-tstoyanov@vmware.com> References: <20190325145017.30246-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 --- 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 Mon Mar 25 14:50:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tzvetomir Stoyanov X-Patchwork-Id: 10869455 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 525E918A6 for ; Mon, 25 Mar 2019 14:50:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3EC4428F8F for ; Mon, 25 Mar 2019 14:50:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 247CA28FF4; Mon, 25 Mar 2019 14:50:28 +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 693AF28FF4 for ; Mon, 25 Mar 2019 14:50:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729348AbfCYOuZ (ORCPT ); Mon, 25 Mar 2019 10:50:25 -0400 Received: from mail-wr1-f43.google.com ([209.85.221.43]:44897 "EHLO mail-wr1-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729273AbfCYOuY (ORCPT ); Mon, 25 Mar 2019 10:50:24 -0400 Received: by mail-wr1-f43.google.com with SMTP id y7so6385958wrn.11 for ; Mon, 25 Mar 2019 07:50:23 -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=JzCTNxrgTqH+dxyDMUFW4umtOt4X5pQ5OQYVb6+cpQU=; b=a0KVHwQ83L0bimMKXoMa0DPF4v85oRprQ3SF7ipAfnZgFs0ZwbiVoxoyods1LMazYj jmpo1nxN/w/r5VqKFLJc7pRBBYv5SrTcGSHLZ+gGwF+SGPiPfRa4vapCo5U+WI2AJ7nB rSIbv2VuoM0yTgI/VszUtk3fNtL/tgBVbSP38jOcDKYuw4lXYoT+mYcDaqkprzjlqtu2 ACG3kdZeGIo4JTM0Ud2CAEb3ki4zERBJ9qNru2OdD91nby1NcwR7MXMu+QWEsXVwgyTW Ltv/Km4FIOpqwkO3gA+jUVT7lalKogqdcd5yoIfmTHjigIQrjCHqKvStKHemqQy1G/15 FDhg== X-Gm-Message-State: APjAAAUYBiNS9EMpe38hskjA5KSpV7ikJflTIn2YT2zmcNTQ8xk+rzKi Oklb8IGSuTFEM1Jhizx9HfdB8+qi X-Google-Smtp-Source: APXvYqzHICQgXsSwBHbrG0uaARkBjSxWoiEZXnN4kPNYIRHozV9dtmmV/tU+74Zj16Zf+PedxaLqSA== X-Received: by 2002:adf:8367:: with SMTP id 94mr17061030wrd.46.1553525422338; Mon, 25 Mar 2019 07:50:22 -0700 (PDT) Received: from oberon.eng.vmware.com ([146.247.46.5]) by smtp.gmail.com with ESMTPSA id 61sm24687595wre.50.2019.03.25.07.50.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 25 Mar 2019 07:50:21 -0700 (PDT) From: Tzvetomir Stoyanov To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org Subject: [PATCH v3 3/3] tools/lib/traceevent: Implement new traceevent APIs for accessing struct tep_handler fields Date: Mon, 25 Mar 2019 16:50:17 +0200 Message-Id: <20190325145017.30246-4-tstoyanov@vmware.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190325145017.30246-1-tstoyanov@vmware.com> References: <20190325145017.30246-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_get_event() - retrieves an event pointer at a specific index tep_get_first_event() is modified to use tep_get_event() tep_clear_flag() - clears a tep handle flag tep_test_flag() - test if a given flag is set tep_get_header_timestamp_size() - returns the size of the timestamp stored in the header. tep_get_cpus() - returns the number of CPUs tep_is_old_format() - returns true if data was created by an older kernel with the old data format tep_set_print_raw() - have the output print in the raw format tep_set_test_filters() - debugging utility for testing tep filters Signed-off-by: Tzvetomir Stoyanov --- tools/lib/traceevent/event-parse-api.c | 106 ++++++++++++++++++++++++- tools/lib/traceevent/event-parse.h | 6 ++ 2 files changed, 108 insertions(+), 4 deletions(-) diff --git a/tools/lib/traceevent/event-parse-api.c b/tools/lib/traceevent/event-parse-api.c index 3716a9142aef..36672b9e18e0 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); } /** @@ -51,6 +64,34 @@ void tep_set_flag(struct tep_handle *tep, int flag) tep->flags |= flag; } +/** + * tep_clear_flag - clear event parser flag + * @tep: a handle to the tep_handle + * @flag: flag to be cleared + * + * This clears a tep flag + */ +void tep_clear_flag(struct tep_handle *tep, enum tep_flag flag) +{ + if (tep) + tep->flags &= ~flag; +} + +/** + * tep_test_flag - check the state of event parser flag + * @tep: a handle to the tep_handle + * @flag: flag to be checked + * + * This returns the state of the requested tep flag. + * Returns: true if the flag is set, false otherwise. + */ +bool tep_test_flag(struct tep_handle *tep, enum tep_flag flag) +{ + if (tep) + return (tep->flags & flag); + return false; +} + unsigned short tep_data2host2(struct tep_handle *pevent, unsigned short data) { unsigned short swap; @@ -113,6 +154,20 @@ int tep_get_header_page_size(struct tep_handle *pevent) return 0; } +/** + * tep_get_header_timestamp_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_timestamp_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 @@ -273,3 +328,46 @@ void tep_set_latency_format(struct tep_handle *pevent, int lat) if (pevent) pevent->latency_format = lat; } + +/** + * tep_is_old_format - get if an old kernel is used + * @tep: a handle to the tep_handle + * + * This returns true, if an old kernel is used to generate the tracing events or + * false if a new kernel is used. Old kernels did not have header page info. + * If @pevent is NULL, false is returned. + */ +bool tep_is_old_format(struct tep_handle *tep) +{ + if (tep) + return !!(tep->old_format); + return false; +} + +/** + * 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_test_filters - 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 test a filter string. If this flag is set, when + * tep_filter_add_filter_str() API as called,it will print the filter string + * instead of adding it. + */ +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.h b/tools/lib/traceevent/event-parse.h index aec48f2aea8a..6e1d493738b4 100644 --- a/tools/lib/traceevent/event-parse.h +++ b/tools/lib/traceevent/event-parse.h @@ -409,6 +409,8 @@ void tep_print_plugins(struct trace_seq *s, 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_clear_flag(struct tep_handle *tep, enum tep_flag flag); +bool tep_check_flags(struct tep_handle *tep, enum tep_flag flags); static inline int tep_host_bigendian(void) { @@ -565,6 +567,10 @@ 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); +int tep_get_header_timestamp_size(struct tep_handle *tep); +bool 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);