From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755924AbcEaR13 (ORCPT ); Tue, 31 May 2016 13:27:29 -0400 Received: from mail-pa0-f65.google.com ([209.85.220.65]:34864 "EHLO mail-pa0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755739AbcEaR1L (ORCPT ); Tue, 31 May 2016 13:27:11 -0400 From: Taeung Song To: Arnaldo Carvalho de Melo Cc: linux-kernel@vger.kernel.org, Jiri Olsa , Namhyung Kim , Ingo Molnar , Peter Zijlstra , Alexander Shishkin , Masami Hiramatsu , Taeung Song , Jiri Olsa Subject: [PATCH v5 5/9] perf config: Add global variable 'config_set' Date: Wed, 1 Jun 2016 02:26:45 +0900 Message-Id: <1464715609-12401-6-git-send-email-treeze.taeung@gmail.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1464715609-12401-1-git-send-email-treeze.taeung@gmail.com> References: <1464715609-12401-1-git-send-email-treeze.taeung@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The config set is prepared by collecting all configs from config files (i.e. user config ~/.perfconfig and system config $(sysconfdir)/perfconfig) so the config set contains all config key-value pairs. We need to use it as global variable to share it. And in near future, the variable will be handled in perf_config() and other functions at util/config.c Cc: Namhyung Kim Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Alexander Shishkin Signed-off-by: Taeung Song --- tools/perf/builtin-config.c | 9 ++++----- tools/perf/util/config.c | 1 + tools/perf/util/config.h | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c index fe1b77f..b3bc01a 100644 --- a/tools/perf/builtin-config.c +++ b/tools/perf/builtin-config.c @@ -62,7 +62,6 @@ static int show_config(struct perf_config_set *set) int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused) { int ret = 0; - struct perf_config_set *set; char *user_config = mkpath("%s/.perfconfig", getenv("HOME")); argc = parse_options(argc, argv, config_options, config_usage, @@ -80,8 +79,8 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused) else if (use_user_config) config_exclusive_filename = user_config; - set = perf_config_set__new(); - if (!set) { + config_set = perf_config_set__new(); + if (!config_set) { ret = -1; goto out_err; } @@ -92,7 +91,7 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused) pr_err("Error: takes no arguments\n"); parse_options_usage(config_usage, config_options, "l", 1); } else { - ret = show_config(set); + ret = show_config(config_set); if (ret < 0) { const char * config_filename = config_exclusive_filename; if (!config_exclusive_filename) @@ -106,7 +105,7 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused) usage_with_options(config_usage, config_options); } - perf_config_set__delete(set); + perf_config_set__delete(config_set); out_err: return ret; } diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c index 6bfa112..21b7ca8 100644 --- a/tools/perf/util/config.c +++ b/tools/perf/util/config.c @@ -28,6 +28,7 @@ static int config_linenr; static int config_file_eof; const char *config_exclusive_filename; +struct perf_config_set *config_set; static int get_next_char(void) { diff --git a/tools/perf/util/config.h b/tools/perf/util/config.h index 22ec626..ea157a4 100644 --- a/tools/perf/util/config.h +++ b/tools/perf/util/config.h @@ -20,6 +20,8 @@ struct perf_config_set { struct list_head sections; }; +extern struct perf_config_set *config_set; + struct perf_config_set *perf_config_set__new(void); void perf_config_set__delete(struct perf_config_set *set); -- 2.5.0