Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp6309509imd; Wed, 31 Oct 2018 09:46:30 -0700 (PDT) X-Google-Smtp-Source: AJdET5dKlt9tsQ3MTHmBkdKzVhzMSXK52qczEDWA4accYI6+O8aFrmi0dIHpctIGaOlRjjRtuiSP X-Received: by 2002:a63:5664:: with SMTP id g36mr3817542pgm.313.1541004389994; Wed, 31 Oct 2018 09:46:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541004389; cv=none; d=google.com; s=arc-20160816; b=Eik3XAe6Jt7vX0f/ZREUx6VF427MrcUTnGa+Xfp06Vxx7iAkxa75W4/AemDcOuwDZW Nj0r42MivVY9uvAoyjDDo0CnN6T8bZvq4eM8zYH/r31ZBPs5HASEgA7+PuZAUXkn85+V 2eP1PykbQwAz1tLwb70FzQnzNP+Sr7VUH59aYP8EK5y8qHExqAkwcY7+HSHxEmg5TFu3 0Xcgel56kowl0DJDCsCd1fSh7heF4G200bMBMk5j36SEAORx/nNhaeS92QoKVUV31tx3 LlW4BHJn2Z7MydlRnN2eFPAwnQC+4Ex2XdKdW5IhxbPJmiboTOObJ2oxcnYMbpgrlgWF 5msA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=lewWK90wzHgWhkmif96biw8No89lLqBzAQ8LVgvIY0M=; b=fPbNtWeA5PweJ9Yr4O0Z18rLhkMXAIgTbJCcs2GexLjyB9jkqrdYCkyPnNerBbUznU EZo7daLmxe6LplrG/yP3v/d2sXpObpGgtydT2GE0zTmhRWG71rlZjw8w/3hnK6+nI9QP tIjXeqjYjFsNLfhFczr2VJR/cPA2t87RN7kpZtw8YIxM8s47za9dg8nX9WdpMzU9Z9h8 OirpPELzHdGeZXZVVZJrYj+XJCnP9j2xmz78YCMsHhKCgXd38ykx1eZlA7aZRzcID+Hk L56bDh4DwIaCgWgRlIQSV1T3o1eknLPL5N+YRSpntkfm/CQWZlt97XF145zOCWoHRASm pD8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=pzA+BNRR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z1-v6si26446121plo.59.2018.10.31.09.46.14; Wed, 31 Oct 2018 09:46:29 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=pzA+BNRR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729954AbeKABoZ (ORCPT + 99 others); Wed, 31 Oct 2018 21:44:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:58876 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729341AbeKABoY (ORCPT ); Wed, 31 Oct 2018 21:44:24 -0400 Received: from jouet.infradead.org (unknown [179.97.41.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4312D20821; Wed, 31 Oct 2018 16:45:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541004337; bh=pHhyCxnvPJkUb5M0fPjxuXqu+lVahX4RXNSvAui8AOA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pzA+BNRRv0mdRDpD5BRPymKwfaShQysXitdTvyjcfmvWaomxTNCvTo/WLfNbltaet LrxWVwcyQyhrpVR0Okj4hvksnJjm9niixKTTSxbslPHPvDUAuIKyKarfiTvlLjLbz5 pzDV0SOWL4NlU6mZ4X4a24No/4CqrDP2PsbBMjGY= From: Arnaldo Carvalho de Melo To: Ingo Molnar Cc: Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo , Adrian Hunter , Benjamin Peterson , David Ahern , Jiri Olsa , Namhyung Kim , Wang Nan Subject: [PATCH 04/28] perf beauty: Introduce strarray__scnprintf_flags() Date: Wed, 31 Oct 2018 13:44:44 -0300 Message-Id: <20181031164508.4784-5-acme@kernel.org> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20181031164508.4784-1-acme@kernel.org> References: <20181031164508.4784-1-acme@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arnaldo Carvalho de Melo Generalizing pkey_alloc__scnprintf_access_rights(), so that we can use it with other flags-like arguments, such as mount's mountflags argument. Cc: Adrian Hunter Cc: Benjamin Peterson Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: https://lkml.kernel.org/n/tip-o3ymi3104m8moaz9865g09w9@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/trace/beauty/beauty.h | 1 + tools/perf/trace/beauty/pkey_alloc.c | 27 ++++++++++++++++----------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/tools/perf/trace/beauty/beauty.h b/tools/perf/trace/beauty/beauty.h index 2570152d3909..a1806c4f3ccd 100644 --- a/tools/perf/trace/beauty/beauty.h +++ b/tools/perf/trace/beauty/beauty.h @@ -24,6 +24,7 @@ struct strarray { } size_t strarray__scnprintf(struct strarray *sa, char *bf, size_t size, const char *intfmt, int val); +size_t strarray__scnprintf_flags(struct strarray *sa, char *bf, size_t size, unsigned long flags); struct trace; struct thread; diff --git a/tools/perf/trace/beauty/pkey_alloc.c b/tools/perf/trace/beauty/pkey_alloc.c index d3e5188a9bef..1b8ed4cac815 100644 --- a/tools/perf/trace/beauty/pkey_alloc.c +++ b/tools/perf/trace/beauty/pkey_alloc.c @@ -9,31 +9,28 @@ #include #include -static size_t pkey_alloc__scnprintf_access_rights(int access_rights, char *bf, size_t size) +size_t strarray__scnprintf_flags(struct strarray *sa, char *bf, size_t size, unsigned long flags) { int i, printed = 0; -#include "trace/beauty/generated/pkey_alloc_access_rights_array.c" - static DEFINE_STRARRAY(pkey_alloc_access_rights); - - if (access_rights == 0) { - const char *s = strarray__pkey_alloc_access_rights.entries[0]; + if (flags == 0) { + const char *s = sa->entries[0]; if (s) return scnprintf(bf, size, "%s", s); return scnprintf(bf, size, "%d", 0); } - for (i = 1; i < strarray__pkey_alloc_access_rights.nr_entries; ++i) { - int bit = 1 << (i - 1); + for (i = 1; i < sa->nr_entries; ++i) { + unsigned long bit = 1UL << (i - 1); - if (!(access_rights & bit)) + if (!(flags & bit)) continue; if (printed != 0) printed += scnprintf(bf + printed, size - printed, "|"); - if (strarray__pkey_alloc_access_rights.entries[i] != NULL) - printed += scnprintf(bf + printed, size - printed, "%s", strarray__pkey_alloc_access_rights.entries[i]); + if (sa->entries[i] != NULL) + printed += scnprintf(bf + printed, size - printed, "%s", sa->entries[i]); else printed += scnprintf(bf + printed, size - printed, "0x%#", bit); } @@ -41,6 +38,14 @@ static size_t pkey_alloc__scnprintf_access_rights(int access_rights, char *bf, s return printed; } +static size_t pkey_alloc__scnprintf_access_rights(int access_rights, char *bf, size_t size) +{ +#include "trace/beauty/generated/pkey_alloc_access_rights_array.c" + static DEFINE_STRARRAY(pkey_alloc_access_rights); + + return strarray__scnprintf_flags(&strarray__pkey_alloc_access_rights, bf, size, access_rights); +} + size_t syscall_arg__scnprintf_pkey_alloc_access_rights(char *bf, size_t size, struct syscall_arg *arg) { unsigned long cmd = arg->val; -- 2.14.4