forked from Minki/linux
perf annotate browser: Read perf config file for settings
The defaults are: [annotate] hide_src_code = false use_offset = true jump_arrows = true show_nr_jumps = false Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-q4egci70rjgxh7bogbbfpcyf@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
8dc7c651dd
commit
c323cf0400
@ -19,3 +19,11 @@
|
||||
|
||||
# Default, disable using /dev/null
|
||||
dir = /root/.debug
|
||||
|
||||
[annotate]
|
||||
|
||||
# Defaults
|
||||
hide_src_code = false
|
||||
use_offset = true
|
||||
jump_arrows = true
|
||||
show_nr_jumps = false
|
||||
|
@ -708,4 +708,6 @@ void ui_browser__init(void)
|
||||
struct ui_browser__colorset *c = &ui_browser__colorsets[i++];
|
||||
sltt_set_color(c->colorset, c->name, c->fg, c->bg);
|
||||
}
|
||||
|
||||
annotate_browser__init();
|
||||
}
|
||||
|
@ -69,4 +69,5 @@ void ui_browser__list_head_seek(struct ui_browser *self, off_t offset, int whenc
|
||||
unsigned int ui_browser__list_head_refresh(struct ui_browser *self);
|
||||
|
||||
void ui_browser__init(void);
|
||||
void annotate_browser__init(void);
|
||||
#endif /* _PERF_UI_BROWSER_H_ */
|
||||
|
@ -900,3 +900,52 @@ out_free_offsets:
|
||||
free(browser.offsets);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define ANNOTATE_CFG(n) \
|
||||
{ .name = #n, .value = &annotate_browser__opts.n, }
|
||||
|
||||
/*
|
||||
* Keep the entries sorted, they are bsearch'ed
|
||||
*/
|
||||
static struct annotate__config {
|
||||
const char *name;
|
||||
bool *value;
|
||||
} annotate__configs[] = {
|
||||
ANNOTATE_CFG(hide_src_code),
|
||||
ANNOTATE_CFG(jump_arrows),
|
||||
ANNOTATE_CFG(show_nr_jumps),
|
||||
ANNOTATE_CFG(use_offset),
|
||||
};
|
||||
|
||||
#undef ANNOTATE_CFG
|
||||
|
||||
static int annotate_config__cmp(const void *name, const void *cfgp)
|
||||
{
|
||||
const struct annotate__config *cfg = cfgp;
|
||||
|
||||
return strcmp(name, cfg->name);
|
||||
}
|
||||
|
||||
static int annotate__config(const char *var, const char *value, void *data __used)
|
||||
{
|
||||
struct annotate__config *cfg;
|
||||
const char *name;
|
||||
|
||||
if (prefixcmp(var, "annotate.") != 0)
|
||||
return 0;
|
||||
|
||||
name = var + 9;
|
||||
cfg = bsearch(name, annotate__configs, ARRAY_SIZE(annotate__configs),
|
||||
sizeof(struct annotate__config), annotate_config__cmp);
|
||||
|
||||
if (cfg == NULL)
|
||||
return -1;
|
||||
|
||||
*cfg->value = perf_config_bool(name, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void annotate_browser__init(void)
|
||||
{
|
||||
perf_config(annotate__config, NULL);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user