forked from luck/tmp_suning_uos_patched
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
|
# Default, disable using /dev/null
|
||||||
dir = /root/.debug
|
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++];
|
struct ui_browser__colorset *c = &ui_browser__colorsets[i++];
|
||||||
sltt_set_color(c->colorset, c->name, c->fg, c->bg);
|
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);
|
unsigned int ui_browser__list_head_refresh(struct ui_browser *self);
|
||||||
|
|
||||||
void ui_browser__init(void);
|
void ui_browser__init(void);
|
||||||
|
void annotate_browser__init(void);
|
||||||
#endif /* _PERF_UI_BROWSER_H_ */
|
#endif /* _PERF_UI_BROWSER_H_ */
|
||||||
|
|
|
@ -900,3 +900,52 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, int evidx,
|
||||||
free(browser.offsets);
|
free(browser.offsets);
|
||||||
return ret;
|
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