From patchwork Fri Apr 9 18:04:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yordan Karadzhov X-Patchwork-Id: 12194651 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6B2BC43460 for ; Fri, 9 Apr 2021 18:04:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 616766115B for ; Fri, 9 Apr 2021 18:04:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234250AbhDISEy (ORCPT ); Fri, 9 Apr 2021 14:04:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233896AbhDISEx (ORCPT ); Fri, 9 Apr 2021 14:04:53 -0400 Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 807BFC061761 for ; Fri, 9 Apr 2021 11:04:40 -0700 (PDT) Received: by mail-ed1-x531.google.com with SMTP id g17so6817577edm.6 for ; Fri, 09 Apr 2021 11:04:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uFCmyoZmsYF6TR1HKFUQCv6oPEMxr+ouFLjkaPL86hk=; b=rcNAu4KRXpyZXhQGq/pbn6F5+RELDegRgQ/oHjtrY/cli+gVNcE3nQIni6MKg65NEs /M8/f9BO/MwE2FqqT20qPDxuwmZCoQ/5FKecAtEBdXDlltwjDq6/1R9CHPRQjIQYLdUJ nZ64+4a2N3isPobctrBy+bDIiDf6zbPznygbxPovKHh+zjQpYQ47Cuy32wr0TtPthggf BeeKDcgZjjv4etfmsmM47rWq9RMn+3kn5VqMWWISm3HQyzqecEZh2meMlbTbxQpq5OjX s8wS1SWosLiHO2yHrrY3DAWJT4FdkOUtzUfyNkh6XU2P7WGb5hg92nRKyWk1Phl+Aagn I/rg== 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=uFCmyoZmsYF6TR1HKFUQCv6oPEMxr+ouFLjkaPL86hk=; b=bhNxhApFczdeEkI1bLZmbRw4BDZH8mxUhsnUs/0hqEeTed4GdR0wCCS5Cs3WPNJx3T wdRe1xm4z+iJqRpzn3i+SVmeqI6xuIhsiuLx/A2SbkDs6HUk1IHtxh4TS4re+J7yY/+Z rvM85tnqq5Hrp1Nwg6bNXN2+S2FspWhBeQswHWh5M3aeYt6z7PULY3kgtOIve+HCWwCp WV5ExS5j4lkP+X0O8AWyfRTSlCeLvBE3mQaWk6J4eq+b8wt6dawc+HNIxbE4p8HAHgNJ xYd/aRS+/RQjpUw+GYZRNf8eWEUbRykjWfHFb2sO7gGdeba7q2Dz8ClfRAnefukx7v4x EgxA== X-Gm-Message-State: AOAM530n6x3D1fbbg0mBYUgKWLLVnCgbsCtaf9TAAJbgxBmNne1KEBww 476MFjMWzQ3IDafxNmLW3KY= X-Google-Smtp-Source: ABdhPJzUu8BZpFFz/iWdKECMiTIJa99GSICWJVQUSWLJeNpZtXcSD+YlrKJuWCOjFOUhHHLf6zqDjA== X-Received: by 2002:aa7:cdcf:: with SMTP id h15mr18696189edw.28.1617991479231; Fri, 09 Apr 2021 11:04:39 -0700 (PDT) Received: from localhost.localdomain ([95.87.199.133]) by smtp.gmail.com with ESMTPSA id b14sm1865568edx.39.2021.04.09.11.04.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 11:04:38 -0700 (PDT) From: "Yordan Karadzhov (VMware)" To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org, tz.stoyanov@gmail.com, "Yordan Karadzhov (VMware)" Subject: [PATCH v4 1/5] libtracefs: Fix issues with tracefs_option_id() Date: Fri, 9 Apr 2021 21:04:19 +0300 Message-Id: <20210409180423.72497-2-y.karadz@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210409180423.72497-1-y.karadz@gmail.com> References: <20210409180423.72497-1-y.karadz@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-trace-devel@vger.kernel.org Few mistakes have been made when introducing this API function. First of all, its declaration is missing from the header file. In addition to this the argument type is missing "const". Signed-off-by: Yordan Karadzhov (VMware) --- include/tracefs.h | 1 + src/tracefs-tools.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/tracefs.h b/include/tracefs.h index 70b7ebe..d3db8b5 100644 --- a/include/tracefs.h +++ b/include/tracefs.h @@ -145,6 +145,7 @@ bool tracefs_option_is_enabled(struct tracefs_instance *instance, enum tracefs_o int tracefs_option_enable(struct tracefs_instance *instance, enum tracefs_option_id id); int tracefs_option_diasble(struct tracefs_instance *instance, enum tracefs_option_id id); const char *tracefs_option_name(enum tracefs_option_id id); +enum tracefs_option_id tracefs_option_id(const char *name); /* * RESET - Reset on opening filter file (O_TRUNC) diff --git a/src/tracefs-tools.c b/src/tracefs-tools.c index d48062c..f409def 100644 --- a/src/tracefs-tools.c +++ b/src/tracefs-tools.c @@ -192,7 +192,7 @@ const char *tracefs_option_name(enum tracefs_option_id id) * Returns trace option ID or TRACEFS_OPTION_INVALID in case of an error or * unknown option name. */ -enum tracefs_option_id tracefs_option_id(char *name) +enum tracefs_option_id tracefs_option_id(const char *name) { int i; From patchwork Fri Apr 9 18:04:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yordan Karadzhov X-Patchwork-Id: 12194653 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7EB69C433ED for ; Fri, 9 Apr 2021 18:04:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 53643610C8 for ; Fri, 9 Apr 2021 18:04:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234262AbhDISEz (ORCPT ); Fri, 9 Apr 2021 14:04:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233896AbhDISEy (ORCPT ); Fri, 9 Apr 2021 14:04:54 -0400 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 54AA7C061761 for ; Fri, 9 Apr 2021 11:04:41 -0700 (PDT) Received: by mail-ej1-x631.google.com with SMTP id g5so3331229ejx.0 for ; Fri, 09 Apr 2021 11:04:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HKUHAOpNrUrKqASrdS1VZ77GIFGbq5QAtjB5KFl/0SU=; b=frxLGvcreTL+FsfBNaaL0l9zQcieFEDJoRjcmfc4HyBaQaavCyoRYx6AbQPc2xITLT yMMPxKpyk06VRJnR7vBPyWI42u85UY03O28aWYlpjgrV3ZuZDWQ8E66oA3WhkEM146XE f0PpptpoqwtWy691Xvd28CGXXx1g6N45iCkX/nZmufVhABF0WBz5hNEOxBbkb0jSG+pM RZv+z+gxOMUvcGNTp4J5vX4w0l2NRylB370Ob4Fg2bc4gT1DHjSencNOWYEJgez20Do/ UQePP39OuXK9yB5lxzIH6iyZFa0JZQJpEqxj0HV7qhGcTglWKAw8rCdkBBGBGn/3Ki5V RTgg== 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=HKUHAOpNrUrKqASrdS1VZ77GIFGbq5QAtjB5KFl/0SU=; b=C0cd0l1TbpsMLV8uSLslAmoyf0KdPDGm3K0uES6frc76ayKl+MpRMtyO8UxoZofFOf osvihanrTqXbEhjAKTAbaVbsGgl3OQ6Z/0OSylB9gpPf+egMVWeuDI8xC8GGNND3bo0W L6T3Fuk7lMQ2m3uJHBmtmPEO8dgnCd36MRkM3c6Ep28ZUgArDObDQvS5EJr5wJnTenhD SiitGBThZJCgAGQwc34nHvUQ9SE6ZWwu83MjmsI3eR3cpDv3UHrRQ0j1la7p22mTjGFR 0zbk/n5uDYuwnjXRFUqZrb1hqzc9JGvsdN6FFWyYy4ECHYSz7BgO1IauXCMT+tovi0Ee y0lA== X-Gm-Message-State: AOAM531vTbK1gQQFPw8tyPbXnMcwwYDzjjGrGmhceAgqQgP5F9vSjaPU u/UHdnp5CzX18rq0j8d2oQM= X-Google-Smtp-Source: ABdhPJy3NJtd091VX8nkqHNu6FOgjjk8miJzAb6tqkBVZ9yzYAqQZHysdNShoT4jM1idkUs7ZwjgWA== X-Received: by 2002:a17:907:2bd9:: with SMTP id gv25mr17430240ejc.225.1617991480066; Fri, 09 Apr 2021 11:04:40 -0700 (PDT) Received: from localhost.localdomain ([95.87.199.133]) by smtp.gmail.com with ESMTPSA id b14sm1865568edx.39.2021.04.09.11.04.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 11:04:39 -0700 (PDT) From: "Yordan Karadzhov (VMware)" To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org, tz.stoyanov@gmail.com, "Yordan Karadzhov (VMware)" Subject: [PATCH v4 2/5] libtracefs: Modify the arguments of tracefs_option_is_set() Date: Fri, 9 Apr 2021 21:04:20 +0300 Message-Id: <20210409180423.72497-3-y.karadz@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210409180423.72497-1-y.karadz@gmail.com> References: <20210409180423.72497-1-y.karadz@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-trace-devel@vger.kernel.org This function is supposed to take as argument a mask returned by "tracefs_options_get_supported()" or "tracefs_options_get_enabled()", hence this argument must be a pointer. Signed-off-by: Yordan Karadzhov (VMware) --- include/tracefs.h | 4 ++-- src/tracefs-tools.c | 5 +++-- utest/tracefs-utest.c | 12 ++++++------ 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/include/tracefs.h b/include/tracefs.h index d3db8b5..95016c8 100644 --- a/include/tracefs.h +++ b/include/tracefs.h @@ -136,8 +136,8 @@ struct tracefs_options_mask { }; void tracefs_option_set(struct tracefs_options_mask *options, enum tracefs_option_id id); void tracefs_option_clear(struct tracefs_options_mask *options, enum tracefs_option_id id); -bool tracefs_option_is_set(struct tracefs_options_mask options, enum tracefs_option_id id); - +bool tracefs_option_is_set(struct tracefs_options_mask *options, + enum tracefs_option_id id); struct tracefs_options_mask *tracefs_options_get_supported(struct tracefs_instance *instance); bool tracefs_option_is_supported(struct tracefs_instance *instance, enum tracefs_option_id id); struct tracefs_options_mask *tracefs_options_get_enabled(struct tracefs_instance *instance); diff --git a/src/tracefs-tools.c b/src/tracefs-tools.c index f409def..25c0cea 100644 --- a/src/tracefs-tools.c +++ b/src/tracefs-tools.c @@ -370,10 +370,11 @@ bool tracefs_option_is_enabled(struct tracefs_instance *instance, enum tracefs_o * Returns true if an option with given id is set in the bitmask, * false if it is not set. */ -bool tracefs_option_is_set(struct tracefs_options_mask options, enum tracefs_option_id id) +bool tracefs_option_is_set(struct tracefs_options_mask *options, + enum tracefs_option_id id) { if (id > TRACEFS_OPTION_INVALID) - return options.mask & (1ULL << (id - 1)); + return options->mask & (1ULL << (id - 1)); return false; } diff --git a/utest/tracefs-utest.c b/utest/tracefs-utest.c index ed2693b..9cb2a09 100644 --- a/utest/tracefs-utest.c +++ b/utest/tracefs-utest.c @@ -547,7 +547,7 @@ static bool check_options_mask_empty(struct tracefs_options_mask *mask) int i; for (i = 1; i < TRACEFS_OPTION_MAX; i++) { - if (tracefs_option_is_set(*mask, i)) + if (tracefs_option_is_set(mask, i)) return false; } return true; @@ -580,9 +580,9 @@ static void test_instance_tracing_options(struct tracefs_instance *instance) CU_TEST(strcmp(name, "unknown")); snprintf(file, PATH_MAX, "options/%s", name); - if (tracefs_option_is_set(*all, i)) { + if (tracefs_option_is_set(all, i)) { tracefs_option_clear(all, i); - CU_TEST(!tracefs_option_is_set(*all, i)); + CU_TEST(!tracefs_option_is_set(all, i)); CU_TEST(check_option(instance, i, true, -1)); CU_TEST(tracefs_option_is_supported(instance, i)); } else { @@ -590,9 +590,9 @@ static void test_instance_tracing_options(struct tracefs_instance *instance) CU_TEST(!tracefs_option_is_supported(instance, i)); } - if (tracefs_option_is_set(*enabled, i)) { + if (tracefs_option_is_set(enabled, i)) { tracefs_option_clear(enabled, i); - CU_TEST(!tracefs_option_is_set(*enabled, i)); + CU_TEST(!tracefs_option_is_set(enabled, i)); CU_TEST(check_option(instance, i, true, 1)); CU_TEST(tracefs_option_is_supported(instance, i)); CU_TEST(tracefs_option_is_enabled(instance, i)); @@ -600,7 +600,7 @@ static void test_instance_tracing_options(struct tracefs_instance *instance) CU_TEST(check_option(instance, i, true, 0)); CU_TEST(tracefs_option_enable(instance, i) == 0); CU_TEST(check_option(instance, i, true, 1)); - } else if (tracefs_option_is_set(*all_copy, i)) { + } else if (tracefs_option_is_set(all_copy, i)) { CU_TEST(check_option(instance, i, true, 0)); CU_TEST(tracefs_option_is_supported(instance, i)); CU_TEST(!tracefs_option_is_enabled(instance, i)); From patchwork Fri Apr 9 18:04:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yordan Karadzhov X-Patchwork-Id: 12194655 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5741AC433B4 for ; Fri, 9 Apr 2021 18:04:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 245F76115B for ; Fri, 9 Apr 2021 18:04:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234273AbhDISEz (ORCPT ); Fri, 9 Apr 2021 14:04:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233896AbhDISEz (ORCPT ); Fri, 9 Apr 2021 14:04:55 -0400 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F67EC061761 for ; Fri, 9 Apr 2021 11:04:42 -0700 (PDT) Received: by mail-ed1-x534.google.com with SMTP id bx20so6404428edb.12 for ; Fri, 09 Apr 2021 11:04:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pKDm3+GxFvpE0BU6yXTHppPxiKAz97coAfSJVQVLE4c=; b=ufL4X2mQNkK+56YtjRjuoFgX2sGLFfvZEfNQwJMM7wgYl2lqMpy7cdP831yUeeSKnh c5MuxJ4pkdfCBwgP2FAoeFpXlsVy7RajqyatYhuHJ1qqUr212zu6erUeZIYouooH+TRN HJ5BOS4TrtJhr69jC8B1DMbIOEBoOpogkGbIxEGDyuXhi3IgHdFwrhKproZNJmJbTzFS 2vbOmSqxk3PtEa6mWqh8JWJW7I81SE1O9Vh7f4Kk6iiMXseU0EvBgm9SLW/Hfc9jn6mY AsHlMKRhpfW2gep1oaF05j3c3kFnRl87haeksJIsZCvqUrM2Bgj0QcEhAXXy/94uCZGi 6Kzg== 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=pKDm3+GxFvpE0BU6yXTHppPxiKAz97coAfSJVQVLE4c=; b=fsm8ibeG7ybszNqtY83S1sS3LG63plxzjeV273Fc1xltkSElLnB2NBh4Sty2OR4bjx p13SXJHHzGlRta/ojKDtL7AxjKXAybOTUMdbXXPt+HBt0AgEguGxtOILXSfNouRrnbaK tPJeFsNbwHhaWDaeAfetYY9DvODEC496X5AX9R33MaEmPlhQDHgGOwtGfWL/UMI4EU9w whFnUIyOuwU4h9F6tn3ik8KzUerZM0aW+o8BsseFsLMfdfL1PM1ilL1TzqCLSdfRZDUF EQUTiXc8t6uZu8gUHWPuiD9pPwdIh7TtBcvA8pMnj/a9tZpibLJGshe1qcqRLrFif19U tV5A== X-Gm-Message-State: AOAM533DT4hCaVALgPSiAi+hkKeGjDcfMw0pkSROnwhwb7jkWJuDihHM uI+KL/tn3460n1VIUKl9Cj8= X-Google-Smtp-Source: ABdhPJy0b5KYaUhWjZsz6UUQzL4KyWJMI4Cqjv4+BeNH78HfKAXRxfAaS3aD0YmS7FYj/rXLL9Xr+Q== X-Received: by 2002:aa7:c654:: with SMTP id z20mr18883190edr.159.1617991480817; Fri, 09 Apr 2021 11:04:40 -0700 (PDT) Received: from localhost.localdomain ([95.87.199.133]) by smtp.gmail.com with ESMTPSA id b14sm1865568edx.39.2021.04.09.11.04.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 11:04:40 -0700 (PDT) From: "Yordan Karadzhov (VMware)" To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org, tz.stoyanov@gmail.com, "Yordan Karadzhov (VMware)" Subject: [PATCH v4 3/5] libtracefs: Encapsulate "struct tracefs_options_mask" Date: Fri, 9 Apr 2021 21:04:21 +0300 Message-Id: <20210409180423.72497-4-y.karadz@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210409180423.72497-1-y.karadz@gmail.com> References: <20210409180423.72497-1-y.karadz@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-trace-devel@vger.kernel.org The definition of the mask gets hidden from the user. This way we will be able to modify this definition in the future, without breaking the API. Such a modification will be compulsory, if too many new tracing options are added in the future. Note that encapsulating the mask definition, requires two API methods to be eliminated, however those methods have no particular use-cases for the moment. Signed-off-by: Yordan Karadzhov (VMware) --- include/tracefs-local.h | 4 ++++ include/tracefs.h | 6 +----- src/tracefs-tools.c | 26 ++------------------------ utest/tracefs-utest.c | 4 ---- 4 files changed, 7 insertions(+), 33 deletions(-) diff --git a/include/tracefs-local.h b/include/tracefs-local.h index 6865611..076b013 100644 --- a/include/tracefs-local.h +++ b/include/tracefs-local.h @@ -14,6 +14,10 @@ #define BUILD_BUG_ON(cond) \ do { if (!(1/!(cond))) { } } while (0) +struct tracefs_options_mask { + unsigned long long mask; +}; + struct tracefs_instance { char *trace_dir; char *name; diff --git a/include/tracefs.h b/include/tracefs.h index 95016c8..e1fbef6 100644 --- a/include/tracefs.h +++ b/include/tracefs.h @@ -131,11 +131,7 @@ enum tracefs_option_id { }; #define TRACEFS_OPTION_MAX (TRACEFS_OPTION_VERBOSE + 1) -struct tracefs_options_mask { - unsigned long long mask; -}; -void tracefs_option_set(struct tracefs_options_mask *options, enum tracefs_option_id id); -void tracefs_option_clear(struct tracefs_options_mask *options, enum tracefs_option_id id); +struct tracefs_options_mask; bool tracefs_option_is_set(struct tracefs_options_mask *options, enum tracefs_option_id id); struct tracefs_options_mask *tracefs_options_get_supported(struct tracefs_instance *instance); diff --git a/src/tracefs-tools.c b/src/tracefs-tools.c index 25c0cea..fc9644a 100644 --- a/src/tracefs-tools.c +++ b/src/tracefs-tools.c @@ -239,8 +239,8 @@ static struct tracefs_options_mask *trace_get_options(struct tracefs_instance *i continue; } id = tracefs_option_id(dent->d_name); - if (id != TRACEFS_OPTION_INVALID) - tracefs_option_set(bitmask, id); + if (id > TRACEFS_OPTION_INVALID) + bitmask->mask |= (1ULL << (id - 1)); } closedir(dir); tracefs_put_tracing_file(dname); @@ -378,28 +378,6 @@ bool tracefs_option_is_set(struct tracefs_options_mask *options, return false; } -/** - * tracefs_option_set - Set option in options bitmask - * @options: Pointer to a bitmask with options - * @id: trace option id - */ -void tracefs_option_set(struct tracefs_options_mask *options, enum tracefs_option_id id) -{ - if (options && id > TRACEFS_OPTION_INVALID) - options->mask |= (1ULL << (id - 1)); -} - -/** - * tracefs_option_clear - Clear option from options bitmask - * @options: Pointer to a bitmask with options - * @id: trace option id - */ -void tracefs_option_clear(struct tracefs_options_mask *options, enum tracefs_option_id id) -{ - if (options && id > TRACEFS_OPTION_INVALID) - options->mask &= ~(1ULL << (id - 1)); -} - struct func_list { struct func_list *next; unsigned int start; diff --git a/utest/tracefs-utest.c b/utest/tracefs-utest.c index 9cb2a09..af28779 100644 --- a/utest/tracefs-utest.c +++ b/utest/tracefs-utest.c @@ -581,8 +581,6 @@ static void test_instance_tracing_options(struct tracefs_instance *instance) snprintf(file, PATH_MAX, "options/%s", name); if (tracefs_option_is_set(all, i)) { - tracefs_option_clear(all, i); - CU_TEST(!tracefs_option_is_set(all, i)); CU_TEST(check_option(instance, i, true, -1)); CU_TEST(tracefs_option_is_supported(instance, i)); } else { @@ -591,8 +589,6 @@ static void test_instance_tracing_options(struct tracefs_instance *instance) } if (tracefs_option_is_set(enabled, i)) { - tracefs_option_clear(enabled, i); - CU_TEST(!tracefs_option_is_set(enabled, i)); CU_TEST(check_option(instance, i, true, 1)); CU_TEST(tracefs_option_is_supported(instance, i)); CU_TEST(tracefs_option_is_enabled(instance, i)); From patchwork Fri Apr 9 18:04:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yordan Karadzhov X-Patchwork-Id: 12194657 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B122C43460 for ; Fri, 9 Apr 2021 18:04:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0DCCB6115B for ; Fri, 9 Apr 2021 18:04:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234306AbhDISE4 (ORCPT ); Fri, 9 Apr 2021 14:04:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233896AbhDISE4 (ORCPT ); Fri, 9 Apr 2021 14:04:56 -0400 Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 03F93C061761 for ; Fri, 9 Apr 2021 11:04:43 -0700 (PDT) Received: by mail-ej1-x62a.google.com with SMTP id v6so8763834ejo.6 for ; Fri, 09 Apr 2021 11:04:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=F8OZiczL+uisWegoFaN+MtiVT5SO5pNjHCiRYvONrmw=; b=VwT1Hv0qtC8ZnMCSclgiBU5ELyztDMRoXiAV34mcmLD7hEGJmW/LsFB9CYall23QKM J7dBVC2Gq5BEbRyr9tvQwbriiJL0PULHwAZooPwNE7auxc4/Jejauml/iSkXiBKf9pkD mSORZLk5rrwCOd1fc1qUqpuwbLNSaVsSku052qEZllXvK6oMUHyP1eEz/S1ORR9DLJOJ nxJoJEQjXENRRPCkF/2KGXhVxNJILxYTdJlkEjsOJ82g/0McOcs0BXj0i0/zd14eTHzH DziL/KIpw97mShil3LiirpljL3vKd0oY5bjEnJUa6zZbxOFR0qvV/b/p6496bkY8XOl4 C5ug== 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=F8OZiczL+uisWegoFaN+MtiVT5SO5pNjHCiRYvONrmw=; b=fbdLkQ/P2ebARnTwY+X+Nbj16Qk+mfRA5H8a0r83vGq80DKZ08cAx92ZbT67OcojtG lma/o4FSQ3tmwB8/bTziW4LCLGL8aAoa4lmYvG0W4gHXgcp7mQczz2Z0c1JGJvpL3Mmg 46ibJDhKIIjkvtDXIvsh6AknFRUOZs4m6mlrdTPigcFanXB+nqSfiehbm3aMHKdqIvri 43kbvuFnN7PvjKqURwGeWJShvhwB3w4G3WlZ1Vr9/Unhis7yXVGAj1IOizNq/4kM6e72 b4M9oJlBt1dFc6HXCzNMBQMo3bgE/hhaOrqdmqYz5unQe0qOenRbKqSCRgxoB9ega6kH 62HQ== X-Gm-Message-State: AOAM533UCAQr9m6ksGPx34WdejnfYdANkU4Aw3T84yQGRjVYHQoawPB5 qXWoqovUi1jnb8Vlh/KGsHk= X-Google-Smtp-Source: ABdhPJxdoo80kZCdMSpHvPnaY2kM5vVR32fc0EFuFeSjwvsMuFiV6xYFdPKzggKXYcJSod9Lvn4ocA== X-Received: by 2002:a17:906:b341:: with SMTP id cd1mr17205900ejb.391.1617991481755; Fri, 09 Apr 2021 11:04:41 -0700 (PDT) Received: from localhost.localdomain ([95.87.199.133]) by smtp.gmail.com with ESMTPSA id b14sm1865568edx.39.2021.04.09.11.04.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 11:04:41 -0700 (PDT) From: "Yordan Karadzhov (VMware)" To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org, tz.stoyanov@gmail.com, "Yordan Karadzhov (VMware)" Subject: [PATCH v4 4/5] libtracefs: Option's bit masks to be owned by the instance Date: Fri, 9 Apr 2021 21:04:22 +0300 Message-Id: <20210409180423.72497-5-y.karadz@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210409180423.72497-1-y.karadz@gmail.com> References: <20210409180423.72497-1-y.karadz@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-trace-devel@vger.kernel.org If the instance owns two mask objects, we no longer need to dynamically allocate memory in tracefs_options_get_supported() and tracefs_options_get_enabled(). This will simplify the code on the caller side, since the user is no longer responsible for freeing those masks. Signed-off-by: Yordan Karadzhov (VMware) --- Documentation/libtracefs-option-get.txt | 7 +-- include/tracefs-local.h | 8 +++ include/tracefs.h | 2 +- src/tracefs-instance.c | 15 +++++ src/tracefs-tools.c | 74 ++++++++++++------------- 5 files changed, 61 insertions(+), 45 deletions(-) diff --git a/Documentation/libtracefs-option-get.txt b/Documentation/libtracefs-option-get.txt index 9b3cb56..4f5291e 100644 --- a/Documentation/libtracefs-option-get.txt +++ b/Documentation/libtracefs-option-get.txt @@ -40,8 +40,7 @@ given _instance_. If _instance_ is NULL, the top trace instance is used. RETURN VALUE ------------ The _tracefs_options_get_supported()_ and _tracefs_options_get_enabled()_ functions return pointer -to allocated bitmask with trace options, or NULL in case of an error. The returned bitmask must be -freed with free(); +to allocated bitmask with trace options, or NULL in case of an error. The _tracefs_option_is_supported()_ and _tracefs_option_is_enabled()_ functions return true if the option in supported / enabled, or false otherwise. @@ -52,14 +51,13 @@ EXAMPLE -- #include ... -struct tracefs_options_mask *options; +const struct tracefs_options_mask *options; ... options = tracefs_options_get_supported(NULL); if (!options) { /* Failed to get supported options */ } else { ... - free(options); } ... options = tracefs_options_get_enabled(NULL); @@ -67,7 +65,6 @@ if (!options) { /* Failed to get options, enabled in the top instance */ } else { ... - free(options); } ... diff --git a/include/tracefs-local.h b/include/tracefs-local.h index 076b013..eb8c81b 100644 --- a/include/tracefs-local.h +++ b/include/tracefs-local.h @@ -25,6 +25,8 @@ struct tracefs_instance { int flags; int ftrace_filter_fd; int ftrace_notrace_fd; + struct tracefs_options_mask supported_opts; + struct tracefs_options_mask enabled_opts; }; extern pthread_mutex_t toplevel_lock; @@ -48,4 +50,10 @@ char *trace_find_tracing_dir(void); #define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) /* 0666*/ #endif +struct tracefs_options_mask * +supported_opts_mask(struct tracefs_instance *instance); + +struct tracefs_options_mask * +enabled_opts_mask(struct tracefs_instance *instance); + #endif /* _TRACE_FS_LOCAL_H */ diff --git a/include/tracefs.h b/include/tracefs.h index e1fbef6..ea9dbd0 100644 --- a/include/tracefs.h +++ b/include/tracefs.h @@ -132,7 +132,7 @@ enum tracefs_option_id { #define TRACEFS_OPTION_MAX (TRACEFS_OPTION_VERBOSE + 1) struct tracefs_options_mask; -bool tracefs_option_is_set(struct tracefs_options_mask *options, +bool tracefs_option_is_set(const struct tracefs_options_mask *options, enum tracefs_option_id id); struct tracefs_options_mask *tracefs_options_get_supported(struct tracefs_instance *instance); bool tracefs_option_is_supported(struct tracefs_instance *instance, enum tracefs_option_id id); diff --git a/src/tracefs-instance.c b/src/tracefs-instance.c index 599c3a7..74122aa 100644 --- a/src/tracefs-instance.c +++ b/src/tracefs-instance.c @@ -21,6 +21,21 @@ #define FLAG_INSTANCE_NEWLY_CREATED (1 << 0) +struct tracefs_options_mask toplevel_supported_opts; +struct tracefs_options_mask toplevel_enabled_opts; + +__hidden inline struct tracefs_options_mask * +supported_opts_mask(struct tracefs_instance *instance) +{ + return instance? &instance->supported_opts : &toplevel_supported_opts; +} + +__hidden inline struct tracefs_options_mask * +enabled_opts_mask(struct tracefs_instance *instance) +{ + return instance? &instance->enabled_opts : &toplevel_enabled_opts; +} + /** * instance_alloc - allocate a new ftrace instance * @trace_dir - Full path to the tracing directory, where the instance is diff --git a/src/tracefs-tools.c b/src/tracefs-tools.c index fc9644a..f539323 100644 --- a/src/tracefs-tools.c +++ b/src/tracefs-tools.c @@ -211,56 +211,52 @@ enum tracefs_option_id tracefs_option_id(const char *name) static struct tracefs_options_mask *trace_get_options(struct tracefs_instance *instance, bool enabled) { + pthread_mutex_t *lock = instance ? &instance->lock : &toplevel_lock; struct tracefs_options_mask *bitmask; enum tracefs_option_id id; + unsigned long long set; char file[PATH_MAX]; - struct dirent *dent; - char *dname = NULL; - DIR *dir = NULL; + struct stat st; long long val; + char *path; + int ret; - bitmask = calloc(1, sizeof(struct tracefs_options_mask)); - if (!bitmask) - return NULL; - dname = tracefs_instance_get_file(instance, "options"); - if (!dname) - goto error; - dir = opendir(dname); - if (!dir) - goto error; - - while ((dent = readdir(dir))) { - if (*dent->d_name == '.') - continue; - if (enabled) { - snprintf(file, PATH_MAX, "options/%s", dent->d_name); - if (tracefs_instance_file_read_number(instance, file, &val) != 0 || - val != 1) - continue; + bitmask = enabled? enabled_opts_mask(instance) : + supported_opts_mask(instance); + + for (id = 1; id < TRACEFS_OPTION_MAX; id++) { + snprintf(file, PATH_MAX, "options/%s", options_map[id]); + path = tracefs_instance_get_file(instance, file); + if (!path) + return NULL; + + set = 1; + ret = stat(path, &st); + if (ret < 0 || !S_ISREG(st.st_mode)) { + set = 0; + } else if (enabled) { + ret = tracefs_instance_file_read_number(instance, file, &val); + if (ret != 0 || val != 1) + set = 0; } - id = tracefs_option_id(dent->d_name); - if (id > TRACEFS_OPTION_INVALID) - bitmask->mask |= (1ULL << (id - 1)); + + pthread_mutex_lock(lock); + bitmask->mask = (bitmask->mask & ~(1ULL << (id - 1))) | (set << (id - 1)); + pthread_mutex_unlock(lock); + + tracefs_put_tracing_file(path); } - closedir(dir); - tracefs_put_tracing_file(dname); - return bitmask; -error: - if (dir) - closedir(dir); - tracefs_put_tracing_file(dname); - free(bitmask); - return NULL; + return bitmask; } /** * tracefs_options_get_supported - Get all supported trace options in given instance * @instance: ftrace instance, can be NULL for the top instance * - * Returns allocated bitmask structure with all trace options, supported in given - * instance, or NULL in case of an error. The returned structure must be freed with free() + * Returns bitmask structure with all trace options, supported in given instance, + * or NULL in case of an error. */ struct tracefs_options_mask *tracefs_options_get_supported(struct tracefs_instance *instance) { @@ -271,8 +267,8 @@ struct tracefs_options_mask *tracefs_options_get_supported(struct tracefs_instan * tracefs_options_get_enabled - Get all currently enabled trace options in given instance * @instance: ftrace instance, can be NULL for the top instance * - * Returns allocated bitmask structure with all trace options, enabled in given - * instance, or NULL in case of an error. The returned structure must be freed with free() + * Returns bitmask structure with all trace options, enabled in given instance, + * or NULL in case of an error. */ struct tracefs_options_mask *tracefs_options_get_enabled(struct tracefs_instance *instance) { @@ -282,7 +278,7 @@ struct tracefs_options_mask *tracefs_options_get_enabled(struct tracefs_instance static int trace_config_option(struct tracefs_instance *instance, enum tracefs_option_id id, bool set) { - char *set_str = set ? "1" : "0"; + const char *set_str = set ? "1" : "0"; char file[PATH_MAX]; const char *name; @@ -370,7 +366,7 @@ bool tracefs_option_is_enabled(struct tracefs_instance *instance, enum tracefs_o * Returns true if an option with given id is set in the bitmask, * false if it is not set. */ -bool tracefs_option_is_set(struct tracefs_options_mask *options, +bool tracefs_option_is_set(const struct tracefs_options_mask *options, enum tracefs_option_id id) { if (id > TRACEFS_OPTION_INVALID) From patchwork Fri Apr 9 18:04:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yordan Karadzhov X-Patchwork-Id: 12194659 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1DB5AC43461 for ; Fri, 9 Apr 2021 18:04:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D9DC16115C for ; Fri, 9 Apr 2021 18:04:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234307AbhDISE5 (ORCPT ); Fri, 9 Apr 2021 14:04:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233896AbhDISE5 (ORCPT ); Fri, 9 Apr 2021 14:04:57 -0400 Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E2906C061761 for ; Fri, 9 Apr 2021 11:04:43 -0700 (PDT) Received: by mail-ed1-x535.google.com with SMTP id e7so7541191edu.10 for ; Fri, 09 Apr 2021 11:04:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GVLlV2nAXvbGrvSDwkLlelxPxN7BE4Od/Uc6/YVFALQ=; b=Hb5/REmmS+2g5G2Z5AEPyAdcZ/L9QuI7mLDa9LCQwz8FNpIEc2s0bCPlrVlIBmt42m XCS/foXPfEXDpc0tsOCWiMRmdgiOP9N2OA5q2eXVTmHVTL+ybjCUfVus2jI2I7gr9QHG 0ie5Wo6nkr7OSTsoausFbaGLFOKdqQ+pybXvRLA3dipTzE/jkucjHypX6PVut1zr5GOZ O4lI+zknZn57YkgVRbTS5r15sXqtYwaBj+tvovSfxoaQfqiju+zfkh9NT2wUk1c/Do/y UMG0IWBWkpbiMx2hZBz9/eFonq4XHkA8r9aPnC9FLjQwh4Bjq36ambE+3ZGwlDPfqhc5 7WzA== 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=GVLlV2nAXvbGrvSDwkLlelxPxN7BE4Od/Uc6/YVFALQ=; b=VUjHFurGmtm04ndp17q9UAo1/rn7oG9a3xbzB73yQVAn3lO38YQFnlpnjapRo6OgLK ChW5RQEjSt8WzHDdQq9453RF7M5Zr3GE6C4KOfv2ag8x78VUE9dFaJ4tmNIKLgqU10av E16qATTkWCvXe9tjhgmx7TMnUNPXZQrPpdaxJYYGwJI+4MAg8IQkp2Damubs4T3Tv6cA Gn5YtDYYSKGewhyxW6M0ynPHIyr249QPkZJfHY6e3kLCXFVQblUSmFaFwT9h2Z7/j1TP aIVfHUriBb5+rdPNRkDmVZPI5bDezHrQ40YW7JcNllGmiDkEzsOnLpt5HIPUOo71g8+o VXfw== X-Gm-Message-State: AOAM531FHnkHm/CNG+gQ9fmOiFBfIr7s7na/fGFAqVAsWhy2fLKerLXb b0AAgyBXECHnpY0sdAfrYO8= X-Google-Smtp-Source: ABdhPJxdyHysBLUIYaCn/CS2Jzwv2BFUML4ddSfv701s6gO0Bc0Y36Huy23io/IzExR2HZp5H52xbQ== X-Received: by 2002:a05:6402:142:: with SMTP id s2mr18742264edu.2.1617991482725; Fri, 09 Apr 2021 11:04:42 -0700 (PDT) Received: from localhost.localdomain ([95.87.199.133]) by smtp.gmail.com with ESMTPSA id b14sm1865568edx.39.2021.04.09.11.04.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 11:04:42 -0700 (PDT) From: "Yordan Karadzhov (VMware)" To: rostedt@goodmis.org Cc: linux-trace-devel@vger.kernel.org, tz.stoyanov@gmail.com, "Yordan Karadzhov (VMware)" Subject: [PATCH v4 5/5] libtracefs: Rename tracefs_option_is_set() Date: Fri, 9 Apr 2021 21:04:23 +0300 Message-Id: <20210409180423.72497-6-y.karadz@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210409180423.72497-1-y.karadz@gmail.com> References: <20210409180423.72497-1-y.karadz@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-trace-devel@vger.kernel.org The old name of the function is potentially confusing. Indeed the function do not check anything about the option itself (is it supported or is it enabled). The function only check if inside the mask the bit that corresponds to a given option is set. Signed-off-by: Yordan Karadzhov (VMware) --- Documentation/libtracefs-option-bits.txt | 10 +++++----- include/tracefs.h | 4 ++-- src/tracefs-tools.c | 4 ++-- utest/tracefs-utest.c | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Documentation/libtracefs-option-bits.txt b/Documentation/libtracefs-option-bits.txt index d713a5e..10e832e 100644 --- a/Documentation/libtracefs-option-bits.txt +++ b/Documentation/libtracefs-option-bits.txt @@ -3,7 +3,7 @@ libtracefs(3) NAME ---- -tracefs_option_set, tracefs_option_clear, tracefs_option_is_set - +tracefs_option_set, tracefs_option_clear, tracefs_option_mask_is_set - Set, clear, check option in a bitmask. SYNOPSIS @@ -14,7 +14,7 @@ SYNOPSIS void *tracefs_option_set*(struct tracefs_options_mask pass:[*]_options_, enum tracefs_option_id _id_); void *tracefs_option_clear*(struct tracefs_options_mask pass:[*]_options_, enum tracefs_option_id _id_); -bool *tracefs_option_is_set*(struct tracefs_options_mask _options_, enum tracefs_option_id _id_); +bool *tracefs_option_mask_is_set*(struct tracefs_options_mask _options_, enum tracefs_option_id _id_); -- DESCRIPTION @@ -27,12 +27,12 @@ _options_ bitmask. The _tracefs_option_clear()_ function clears the bit, corresponding to the option with _id_ in the _options_ bitmask. -The _tracefs_option_is_set()_ function checks if the bit, corresponding to the option with _id_ is +The _tracefs_option_mask_is_set()_ function checks if the bit, corresponding to the option with _id_ is set in the _options_ bitmask. RETURN VALUE ------------ -The _tracefs_option_is_set()_ function returns true if the bit is set, false otherwise. +The _tracefs_option_mask_is_set()_ function returns true if the bit is set, false otherwise. EXAMPLE ------- @@ -45,7 +45,7 @@ memset(&options, 0, sizeof(options)); ... tracefs_option_set(&options, TRACEFS_OPTION_EVENT_FORK | TRACEFS_OPTION_FUNCTION_FORK); ... -if (tracefs_option_is_set(options, TRACEFS_OPTION_EVENT_FORK)) +if (tracefs_option_mask_is_set(options, TRACEFS_OPTION_EVENT_FORK)) tracefs_option_clear(&options, TRACEFS_OPTION_EVENT_FORK); ... -- diff --git a/include/tracefs.h b/include/tracefs.h index ea9dbd0..daae419 100644 --- a/include/tracefs.h +++ b/include/tracefs.h @@ -132,8 +132,8 @@ enum tracefs_option_id { #define TRACEFS_OPTION_MAX (TRACEFS_OPTION_VERBOSE + 1) struct tracefs_options_mask; -bool tracefs_option_is_set(const struct tracefs_options_mask *options, - enum tracefs_option_id id); +bool tracefs_option_mask_is_set(const struct tracefs_options_mask *options, + enum tracefs_option_id id); struct tracefs_options_mask *tracefs_options_get_supported(struct tracefs_instance *instance); bool tracefs_option_is_supported(struct tracefs_instance *instance, enum tracefs_option_id id); struct tracefs_options_mask *tracefs_options_get_enabled(struct tracefs_instance *instance); diff --git a/src/tracefs-tools.c b/src/tracefs-tools.c index f539323..15ad3b6 100644 --- a/src/tracefs-tools.c +++ b/src/tracefs-tools.c @@ -359,14 +359,14 @@ bool tracefs_option_is_enabled(struct tracefs_instance *instance, enum tracefs_o } /** - * tracefs_option_is_set - Check if given option is set in the bitmask + * tracefs_option_mask_is_set - Check if given option is set in the bitmask * @options: Options bitmask * @id: trace option id * * Returns true if an option with given id is set in the bitmask, * false if it is not set. */ -bool tracefs_option_is_set(const struct tracefs_options_mask *options, +bool tracefs_option_mask_is_set(const struct tracefs_options_mask *options, enum tracefs_option_id id) { if (id > TRACEFS_OPTION_INVALID) diff --git a/utest/tracefs-utest.c b/utest/tracefs-utest.c index af28779..185ac2a 100644 --- a/utest/tracefs-utest.c +++ b/utest/tracefs-utest.c @@ -547,7 +547,7 @@ static bool check_options_mask_empty(struct tracefs_options_mask *mask) int i; for (i = 1; i < TRACEFS_OPTION_MAX; i++) { - if (tracefs_option_is_set(mask, i)) + if (tracefs_option_mask_is_set(mask, i)) return false; } return true; @@ -580,7 +580,7 @@ static void test_instance_tracing_options(struct tracefs_instance *instance) CU_TEST(strcmp(name, "unknown")); snprintf(file, PATH_MAX, "options/%s", name); - if (tracefs_option_is_set(all, i)) { + if (tracefs_option_mask_is_set(all, i)) { CU_TEST(check_option(instance, i, true, -1)); CU_TEST(tracefs_option_is_supported(instance, i)); } else { @@ -588,7 +588,7 @@ static void test_instance_tracing_options(struct tracefs_instance *instance) CU_TEST(!tracefs_option_is_supported(instance, i)); } - if (tracefs_option_is_set(enabled, i)) { + if (tracefs_option_mask_is_set(enabled, i)) { CU_TEST(check_option(instance, i, true, 1)); CU_TEST(tracefs_option_is_supported(instance, i)); CU_TEST(tracefs_option_is_enabled(instance, i)); @@ -596,7 +596,7 @@ static void test_instance_tracing_options(struct tracefs_instance *instance) CU_TEST(check_option(instance, i, true, 0)); CU_TEST(tracefs_option_enable(instance, i) == 0); CU_TEST(check_option(instance, i, true, 1)); - } else if (tracefs_option_is_set(all_copy, i)) { + } else if (tracefs_option_mask_is_set(all_copy, i)) { CU_TEST(check_option(instance, i, true, 0)); CU_TEST(tracefs_option_is_supported(instance, i)); CU_TEST(!tracefs_option_is_enabled(instance, i));