Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c323cf04 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

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: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 8dc7c651
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -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
+2 −0
Original line number Original line Diff line number Diff line
@@ -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();
}
}
+1 −0
Original line number Original line Diff line number Diff line
@@ -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_ */
+49 −0
Original line number Original line Diff line number Diff line
@@ -900,3 +900,52 @@ out_free_offsets:
	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);
}