Actual variable for configs of 'colors' section is like below. (at ui/browser.c) static struct ui_browser_colorset { const char *name, *fg, *bg; int colorset; } ui_browser__colorsets[] = { { .colorset = HE_COLORSET_TOP, .name = "top", .fg = "red", .bg = "default", }, ...
But I suggest using default config arrays for 'colors' section that contain all default config key-value pairs for it. In near future, this array will be used on ui/browser.c because of setting default values of actual variables for 'colors' config. Cc: Namhyung Kim <namhy...@kernel.org> Cc: Jiri Olsa <jo...@redhat.com> Cc: Masami Hiramatsu <mhira...@kernel.org> Cc: Wang Nan <wangn...@huawei.com> Cc: Alexander Shishkin <alexander.shish...@linux.intel.com> Signed-off-by: Taeung Song <treeze.tae...@gmail.com> --- tools/perf/util/config.c | 15 +++++++++++++++ tools/perf/util/config.h | 17 +++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c index 18dae74..a0c0170 100644 --- a/tools/perf/util/config.c +++ b/tools/perf/util/config.c @@ -30,6 +30,21 @@ static struct perf_config_set *config_set; const char *config_exclusive_filename; +const struct default_config_item colors_config_items[] = { + CONF_STR_VAR("top", "red, default"), + CONF_STR_VAR("medium", "green, default"), + CONF_STR_VAR("normal", "default, default"), + CONF_STR_VAR("selected", "black, yellow"), + CONF_STR_VAR("jump_arrows", "blue, default"), + CONF_STR_VAR("addr", "magenta, default"), + CONF_STR_VAR("root", "white, blue"), + CONF_END() +}; + +const struct default_config_section default_sections[] = { + { .name = "colors", .items = colors_config_items }, +}; + static int get_next_char(void) { int c; diff --git a/tools/perf/util/config.h b/tools/perf/util/config.h index 613900f..b9190fe 100644 --- a/tools/perf/util/config.h +++ b/tools/perf/util/config.h @@ -73,6 +73,20 @@ enum perf_config_type { CONFIG_TYPE_STRING }; +enum config_section_idx { + CONFIG_COLORS, +}; + +enum colors_config_items_idx { + CONFIG_COLORS_TOP, + CONFIG_COLORS_MEDIUM, + CONFIG_COLORS_NORMAL, + CONFIG_COLORS_SELECTED, + CONFIG_COLORS_JUMP_ARROWS, + CONFIG_COLORS_ADDR, + CONFIG_COLORS_ROOT, +}; + struct default_config_item { const char *name; union { @@ -112,4 +126,7 @@ struct default_config_section { #define CONF_END() \ { .name = NULL } +extern const struct default_config_section default_sections[]; +extern const struct default_config_item colors_config_items[]; + #endif /* __PERF_CONFIG_H */ -- 2.5.0