Searched refs:browser (Results 1 - 61 of 61) sorted by relevance

/linux-4.4.14/tools/perf/ui/
H A Dbrowser.c12 #include "browser.h"
17 static int ui_browser__percent_color(struct ui_browser *browser, ui_browser__percent_color() argument
20 if (current && (!browser->use_navkeypressed || browser->navkeypressed)) ui_browser__percent_color()
29 int ui_browser__set_color(struct ui_browser *browser, int color) ui_browser__set_color() argument
31 int ret = browser->current_color; ui_browser__set_color()
32 browser->current_color = color; ui_browser__set_color()
37 void ui_browser__set_percent_color(struct ui_browser *browser, ui_browser__set_percent_color() argument
40 int color = ui_browser__percent_color(browser, percent, current); ui_browser__set_percent_color()
41 ui_browser__set_color(browser, color); ui_browser__set_percent_color()
44 void ui_browser__gotorc(struct ui_browser *browser, int y, int x) ui_browser__gotorc() argument
46 SLsmg_gotorc(browser->y + y, browser->x + x); ui_browser__gotorc()
49 void ui_browser__write_nstring(struct ui_browser *browser __maybe_unused, const char *msg, ui_browser__write_nstring()
55 void ui_browser__printf(struct ui_browser *browser __maybe_unused, const char *fmt, ...) ui_browser__printf()
65 ui_browser__list_head_filter_entries(struct ui_browser *browser, ui_browser__list_head_filter_entries() argument
69 if (!browser->filter || !browser->filter(browser, pos)) ui_browser__list_head_filter_entries()
72 } while (pos != browser->entries); ui_browser__list_head_filter_entries()
78 ui_browser__list_head_filter_prev_entries(struct ui_browser *browser, ui_browser__list_head_filter_prev_entries() argument
82 if (!browser->filter || !browser->filter(browser, pos)) ui_browser__list_head_filter_prev_entries()
85 } while (pos != browser->entries); ui_browser__list_head_filter_prev_entries()
90 void ui_browser__list_head_seek(struct ui_browser *browser, off_t offset, int whence) ui_browser__list_head_seek() argument
92 struct list_head *head = browser->entries; ui_browser__list_head_seek()
95 if (browser->nr_entries == 0) ui_browser__list_head_seek()
100 pos = ui_browser__list_head_filter_entries(browser, head->next); ui_browser__list_head_seek()
103 pos = browser->top; ui_browser__list_head_seek()
106 pos = ui_browser__list_head_filter_prev_entries(browser, head->prev); ui_browser__list_head_seek()
116 pos = ui_browser__list_head_filter_entries(browser, pos->next); ui_browser__list_head_seek()
119 pos = ui_browser__list_head_filter_prev_entries(browser, pos->prev); ui_browser__list_head_seek()
122 browser->top = pos; ui_browser__list_head_seek()
125 void ui_browser__rb_tree_seek(struct ui_browser *browser, off_t offset, int whence) ui_browser__rb_tree_seek() argument
127 struct rb_root *root = browser->entries; ui_browser__rb_tree_seek()
135 nd = browser->top; ui_browser__rb_tree_seek()
152 browser->top = nd; ui_browser__rb_tree_seek()
155 unsigned int ui_browser__rb_tree_refresh(struct ui_browser *browser) ui_browser__rb_tree_refresh() argument
160 if (browser->top == NULL) ui_browser__rb_tree_refresh()
161 browser->top = rb_first(browser->entries); ui_browser__rb_tree_refresh()
163 nd = browser->top; ui_browser__rb_tree_refresh()
166 ui_browser__gotorc(browser, row, 0); ui_browser__rb_tree_refresh()
167 browser->write(browser, nd, row); ui_browser__rb_tree_refresh()
168 if (++row == browser->rows) ui_browser__rb_tree_refresh()
176 bool ui_browser__is_current_entry(struct ui_browser *browser, unsigned row) ui_browser__is_current_entry() argument
178 return browser->top_idx + row == browser->index; ui_browser__is_current_entry()
181 void ui_browser__refresh_dimensions(struct ui_browser *browser) ui_browser__refresh_dimensions() argument
183 browser->width = SLtt_Screen_Cols - 1; ui_browser__refresh_dimensions()
184 browser->height = browser->rows = SLtt_Screen_Rows - 2; ui_browser__refresh_dimensions()
185 browser->y = 1; ui_browser__refresh_dimensions()
186 browser->x = 0; ui_browser__refresh_dimensions()
189 void ui_browser__handle_resize(struct ui_browser *browser) ui_browser__handle_resize() argument
192 ui_browser__show(browser, browser->title, ui_helpline__current); ui_browser__handle_resize()
193 ui_browser__refresh(browser); ui_browser__handle_resize()
196 int ui_browser__warning(struct ui_browser *browser, int timeout, ui_browser__warning() argument
215 ui_browser__handle_resize(browser); ui_browser__warning()
222 int ui_browser__help_window(struct ui_browser *browser, const char *text) ui_browser__help_window() argument
227 ui_browser__handle_resize(browser); ui_browser__help_window()
232 bool ui_browser__dialog_yesno(struct ui_browser *browser, const char *text) ui_browser__dialog_yesno() argument
237 ui_browser__handle_resize(browser); ui_browser__dialog_yesno()
242 void ui_browser__reset_index(struct ui_browser *browser) ui_browser__reset_index() argument
244 browser->index = browser->top_idx = 0; ui_browser__reset_index()
245 browser->seek(browser, 0, SEEK_SET); ui_browser__reset_index()
248 void __ui_browser__show_title(struct ui_browser *browser, const char *title) __ui_browser__show_title() argument
251 ui_browser__set_color(browser, HE_COLORSET_ROOT); __ui_browser__show_title()
252 ui_browser__write_nstring(browser, title, browser->width + 1); __ui_browser__show_title()
255 void ui_browser__show_title(struct ui_browser *browser, const char *title) ui_browser__show_title() argument
258 __ui_browser__show_title(browser, title); ui_browser__show_title()
262 int ui_browser__show(struct ui_browser *browser, const char *title, ui_browser__show() argument
268 if (browser->refresh_dimensions == NULL) ui_browser__show()
269 browser->refresh_dimensions = ui_browser__refresh_dimensions; ui_browser__show()
271 browser->refresh_dimensions(browser); ui_browser__show()
274 __ui_browser__show_title(browser, title); ui_browser__show()
276 browser->title = title; ui_browser__show()
277 zfree(&browser->helpline); ui_browser__show()
280 err = vasprintf(&browser->helpline, helpline, ap); ui_browser__show()
283 ui_helpline__push(browser->helpline); ui_browser__show()
288 void ui_browser__hide(struct ui_browser *browser) ui_browser__hide() argument
292 zfree(&browser->helpline); ui_browser__hide()
296 static void ui_browser__scrollbar_set(struct ui_browser *browser) ui_browser__scrollbar_set() argument
298 int height = browser->height, h = 0, pct = 0, ui_browser__scrollbar_set()
299 col = browser->width, ui_browser__scrollbar_set()
302 if (browser->nr_entries > 1) { ui_browser__scrollbar_set()
303 pct = ((browser->index * (browser->height - 1)) / ui_browser__scrollbar_set()
304 (browser->nr_entries - 1)); ui_browser__scrollbar_set()
310 ui_browser__gotorc(browser, row++, col); ui_browser__scrollbar_set()
318 static int __ui_browser__refresh(struct ui_browser *browser) __ui_browser__refresh() argument
321 int width = browser->width; __ui_browser__refresh()
323 row = browser->refresh(browser); __ui_browser__refresh()
324 ui_browser__set_color(browser, HE_COLORSET_NORMAL); __ui_browser__refresh()
326 if (!browser->use_navkeypressed || browser->navkeypressed) __ui_browser__refresh()
327 ui_browser__scrollbar_set(browser); __ui_browser__refresh()
331 SLsmg_fill_region(browser->y + row, browser->x, __ui_browser__refresh()
332 browser->height - row, width, ' '); __ui_browser__refresh()
337 int ui_browser__refresh(struct ui_browser *browser) ui_browser__refresh() argument
340 __ui_browser__refresh(browser); ui_browser__refresh()
349 * that is why we do a SEEK_SET. Think about 'perf top' in the hists browser
352 void ui_browser__update_nr_entries(struct ui_browser *browser, u32 nr_entries) ui_browser__update_nr_entries() argument
354 off_t offset = nr_entries - browser->nr_entries; ui_browser__update_nr_entries()
356 browser->nr_entries = nr_entries; ui_browser__update_nr_entries()
359 if (browser->top_idx < (u64)-offset) ui_browser__update_nr_entries()
360 offset = -browser->top_idx; ui_browser__update_nr_entries()
362 browser->index += offset; ui_browser__update_nr_entries()
363 browser->top_idx += offset; ui_browser__update_nr_entries()
366 browser->top = NULL; ui_browser__update_nr_entries()
367 browser->seek(browser, browser->top_idx, SEEK_SET); ui_browser__update_nr_entries()
370 int ui_browser__run(struct ui_browser *browser, int delay_secs) ui_browser__run() argument
378 err = __ui_browser__refresh(browser); ui_browser__run()
388 browser->refresh_dimensions(browser); ui_browser__run()
389 __ui_browser__show_title(browser, browser->title); ui_browser__run()
390 ui_helpline__puts(browser->helpline); ui_browser__run()
394 if (browser->use_navkeypressed && !browser->navkeypressed) { ui_browser__run()
396 (browser->columns && (key == K_LEFT || key == K_RIGHT)) || ui_browser__run()
400 browser->navkeypressed = true; ui_browser__run()
408 if (browser->index == browser->nr_entries - 1) ui_browser__run()
410 ++browser->index; ui_browser__run()
411 if (browser->index == browser->top_idx + browser->rows) { ui_browser__run()
412 ++browser->top_idx; ui_browser__run()
413 browser->seek(browser, +1, SEEK_CUR); ui_browser__run()
417 if (browser->index == 0) ui_browser__run()
419 --browser->index; ui_browser__run()
420 if (browser->index < browser->top_idx) { ui_browser__run()
421 --browser->top_idx; ui_browser__run()
422 browser->seek(browser, -1, SEEK_CUR); ui_browser__run()
426 if (!browser->columns) ui_browser__run()
428 if (browser->horiz_scroll < browser->columns - 1) ui_browser__run()
429 ++browser->horiz_scroll; ui_browser__run()
432 if (!browser->columns) ui_browser__run()
434 if (browser->horiz_scroll != 0) ui_browser__run()
435 --browser->horiz_scroll; ui_browser__run()
439 if (browser->top_idx + browser->rows > browser->nr_entries - 1) ui_browser__run()
442 offset = browser->rows; ui_browser__run()
443 if (browser->index + offset > browser->nr_entries - 1) ui_browser__run()
444 offset = browser->nr_entries - 1 - browser->index; ui_browser__run()
445 browser->index += offset; ui_browser__run()
446 browser->top_idx += offset; ui_browser__run()
447 browser->seek(browser, +offset, SEEK_CUR); ui_browser__run()
450 if (browser->top_idx == 0) ui_browser__run()
453 if (browser->top_idx < browser->rows) ui_browser__run()
454 offset = browser->top_idx; ui_browser__run()
456 offset = browser->rows; ui_browser__run()
458 browser->index -= offset; ui_browser__run()
459 browser->top_idx -= offset; ui_browser__run()
460 browser->seek(browser, -offset, SEEK_CUR); ui_browser__run()
463 ui_browser__reset_index(browser); ui_browser__run()
466 offset = browser->rows - 1; ui_browser__run()
467 if (offset >= browser->nr_entries) ui_browser__run()
468 offset = browser->nr_entries - 1; ui_browser__run()
470 browser->index = browser->nr_entries - 1; ui_browser__run()
471 browser->top_idx = browser->index - offset; ui_browser__run()
472 browser->seek(browser, -offset, SEEK_END); ui_browser__run()
482 unsigned int ui_browser__list_head_refresh(struct ui_browser *browser) ui_browser__list_head_refresh() argument
485 struct list_head *head = browser->entries; ui_browser__list_head_refresh()
488 if (browser->top == NULL || browser->top == browser->entries) ui_browser__list_head_refresh()
489 browser->top = ui_browser__list_head_filter_entries(browser, head->next); ui_browser__list_head_refresh()
491 pos = browser->top; ui_browser__list_head_refresh()
494 if (!browser->filter || !browser->filter(browser, pos)) { list_for_each_from()
495 ui_browser__gotorc(browser, row, 0); list_for_each_from()
496 browser->write(browser, pos, row); list_for_each_from()
497 if (++row == browser->rows) list_for_each_from()
592 void ui_browser__argv_seek(struct ui_browser *browser, off_t offset, int whence) ui_browser__argv_seek() argument
596 browser->top = browser->entries; ui_browser__argv_seek()
599 browser->top = browser->top + browser->top_idx + offset; ui_browser__argv_seek()
602 browser->top = browser->top + browser->nr_entries - 1 + offset; ui_browser__argv_seek()
609 unsigned int ui_browser__argv_refresh(struct ui_browser *browser) ui_browser__argv_refresh() argument
611 unsigned int row = 0, idx = browser->top_idx; ui_browser__argv_refresh()
614 if (browser->top == NULL) ui_browser__argv_refresh()
615 browser->top = browser->entries; ui_browser__argv_refresh()
617 pos = (char **)browser->top; ui_browser__argv_refresh()
618 while (idx < browser->nr_entries) { ui_browser__argv_refresh()
619 if (!browser->filter || !browser->filter(browser, *pos)) { ui_browser__argv_refresh()
620 ui_browser__gotorc(browser, row, 0); ui_browser__argv_refresh()
621 browser->write(browser, pos, row); ui_browser__argv_refresh()
622 if (++row == browser->rows) ui_browser__argv_refresh()
633 void __ui_browser__vline(struct ui_browser *browser, unsigned int column, __ui_browser__vline() argument
637 ui_browser__gotorc(browser, start, column); __ui_browser__vline()
642 void ui_browser__write_graph(struct ui_browser *browser __maybe_unused, ui_browser__write_graph()
650 static void __ui_browser__line_arrow_up(struct ui_browser *browser, __ui_browser__line_arrow_up() argument
658 if (start < browser->top_idx + browser->rows) { __ui_browser__line_arrow_up()
659 row = start - browser->top_idx; __ui_browser__line_arrow_up()
660 ui_browser__gotorc(browser, row, column); __ui_browser__line_arrow_up()
662 ui_browser__gotorc(browser, row, column + 1); __ui_browser__line_arrow_up()
668 row = browser->rows - 1; __ui_browser__line_arrow_up()
670 if (end > browser->top_idx) __ui_browser__line_arrow_up()
671 end_row = end - browser->top_idx; __ui_browser__line_arrow_up()
675 ui_browser__gotorc(browser, end_row, column); __ui_browser__line_arrow_up()
678 ui_browser__gotorc(browser, end_row, column); __ui_browser__line_arrow_up()
679 if (end >= browser->top_idx) { __ui_browser__line_arrow_up()
681 ui_browser__gotorc(browser, end_row, column + 1); __ui_browser__line_arrow_up()
683 ui_browser__gotorc(browser, end_row, column + 2); __ui_browser__line_arrow_up()
690 static void __ui_browser__line_arrow_down(struct ui_browser *browser, __ui_browser__line_arrow_down() argument
698 if (start >= browser->top_idx) { __ui_browser__line_arrow_down()
699 row = start - browser->top_idx; __ui_browser__line_arrow_down()
700 ui_browser__gotorc(browser, row, column); __ui_browser__line_arrow_down()
702 ui_browser__gotorc(browser, row, column + 1); __ui_browser__line_arrow_down()
710 if (end >= browser->top_idx + browser->rows) __ui_browser__line_arrow_down()
711 end_row = browser->rows - 1; __ui_browser__line_arrow_down()
713 end_row = end - browser->top_idx; __ui_browser__line_arrow_down()
715 ui_browser__gotorc(browser, row, column); __ui_browser__line_arrow_down()
718 ui_browser__gotorc(browser, end_row, column); __ui_browser__line_arrow_down()
719 if (end < browser->top_idx + browser->rows) { __ui_browser__line_arrow_down()
721 ui_browser__gotorc(browser, end_row, column + 1); __ui_browser__line_arrow_down()
723 ui_browser__gotorc(browser, end_row, column + 2); __ui_browser__line_arrow_down()
730 void __ui_browser__line_arrow(struct ui_browser *browser, unsigned int column, __ui_browser__line_arrow() argument
734 __ui_browser__line_arrow_up(browser, column, start, end); __ui_browser__line_arrow()
736 __ui_browser__line_arrow_down(browser, column, start, end); __ui_browser__line_arrow()
H A Dbrowser.h22 void (*refresh_dimensions)(struct ui_browser *browser);
23 unsigned int (*refresh)(struct ui_browser *browser);
24 void (*write)(struct ui_browser *browser, void *entry, int row);
25 void (*seek)(struct ui_browser *browser, off_t offset, int whence);
26 bool (*filter)(struct ui_browser *browser, void *entry);
32 int ui_browser__set_color(struct ui_browser *browser, int color);
33 void ui_browser__set_percent_color(struct ui_browser *browser,
35 bool ui_browser__is_current_entry(struct ui_browser *browser, unsigned row);
36 void ui_browser__refresh_dimensions(struct ui_browser *browser);
37 void ui_browser__reset_index(struct ui_browser *browser);
39 void ui_browser__gotorc(struct ui_browser *browser, int y, int x);
40 void ui_browser__write_nstring(struct ui_browser *browser, const char *msg,
42 void ui_browser__printf(struct ui_browser *browser, const char *fmt, ...);
43 void ui_browser__write_graph(struct ui_browser *browser, int graph);
44 void __ui_browser__line_arrow(struct ui_browser *browser, unsigned int column,
46 void __ui_browser__show_title(struct ui_browser *browser, const char *title);
47 void ui_browser__show_title(struct ui_browser *browser, const char *title);
48 int ui_browser__show(struct ui_browser *browser, const char *title,
50 void ui_browser__hide(struct ui_browser *browser);
51 int ui_browser__refresh(struct ui_browser *browser);
52 int ui_browser__run(struct ui_browser *browser, int delay_secs);
53 void ui_browser__update_nr_entries(struct ui_browser *browser, u32 nr_entries);
54 void ui_browser__handle_resize(struct ui_browser *browser);
55 void __ui_browser__vline(struct ui_browser *browser, unsigned int column,
58 int ui_browser__warning(struct ui_browser *browser, int timeout,
60 int ui_browser__help_window(struct ui_browser *browser, const char *text);
61 bool ui_browser__dialog_yesno(struct ui_browser *browser, const char *text);
67 void ui_browser__argv_seek(struct ui_browser *browser, off_t offset, int whence);
68 unsigned int ui_browser__argv_refresh(struct ui_browser *browser);
70 void ui_browser__rb_tree_seek(struct ui_browser *browser, off_t offset, int whence);
71 unsigned int ui_browser__rb_tree_refresh(struct ui_browser *browser);
73 void ui_browser__list_head_seek(struct ui_browser *browser, off_t offset, int whence);
74 unsigned int ui_browser__list_head_refresh(struct ui_browser *browser);
H A Dsetup.c76 printf("GTK browser requested but could not find %s\n", setup_browser()
/linux-4.4.14/tools/perf/ui/browsers/
H A Dmap.c9 #include "../browser.h"
20 static void map_browser__write(struct ui_browser *browser, void *nd, int row) map_browser__write() argument
23 struct map_browser *mb = container_of(browser, struct map_browser, b); map_browser__write()
24 bool current_entry = ui_browser__is_current_entry(browser, row); map_browser__write()
27 ui_browser__set_percent_color(browser, 0, current_entry); map_browser__write()
28 ui_browser__printf(browser, "%*" PRIx64 " %*" PRIx64 " %c ", map_browser__write()
32 width = browser->width - ((mb->addrlen * 2) + 4); map_browser__write()
34 ui_browser__write_nstring(browser, sym->name, width); map_browser__write()
38 static u32 *symbol__browser_index(struct symbol *browser) symbol__browser_index() argument
40 return ((void *)browser) - sizeof(struct rb_node) - sizeof(u32); symbol__browser_index()
43 static int map_browser__search(struct map_browser *browser) map_browser__search() argument
55 sym = map__find_symbol(browser->map, addr, NULL); map_browser__search()
57 sym = map__find_symbol_by_name(browser->map, target, NULL); map_browser__search()
62 browser->b.top = &sym->rb_node; map_browser__search()
63 browser->b.index = browser->b.top_idx = *idx; map_browser__search()
70 static int map_browser__run(struct map_browser *browser) map_browser__run() argument
74 if (ui_browser__show(&browser->b, browser->map->dso->long_name, map_browser__run()
80 key = ui_browser__run(&browser->b, 0); map_browser__run()
85 map_browser__search(browser); map_browser__run()
96 ui_browser__hide(&browser->b); map_browser__run()
H A Dannotate.c2 #include "../browser.h"
72 static bool disasm_line__filter(struct ui_browser *browser __maybe_unused, disasm_line__filter()
83 static int annotate_browser__jumps_percent_color(struct annotate_browser *browser, annotate_browser__jumps_percent_color() argument
86 if (current && (!browser->b.use_navkeypressed || browser->b.navkeypressed)) annotate_browser__jumps_percent_color()
88 if (nr == browser->max_jump_sources) annotate_browser__jumps_percent_color()
95 static int annotate_browser__set_jumps_percent_color(struct annotate_browser *browser, annotate_browser__set_jumps_percent_color() argument
98 int color = annotate_browser__jumps_percent_color(browser, nr, current); annotate_browser__set_jumps_percent_color()
99 return ui_browser__set_color(&browser->b, color); annotate_browser__set_jumps_percent_color()
111 static void annotate_browser__write(struct ui_browser *browser, void *entry, int row) annotate_browser__write() argument
113 struct annotate_browser *ab = container_of(browser, struct annotate_browser, b); annotate_browser__write()
116 bool current_entry = ui_browser__is_current_entry(browser, row); annotate_browser__write()
118 (!current_entry || (browser->use_navkeypressed && annotate_browser__write()
119 !browser->navkeypressed))); annotate_browser__write()
120 int width = browser->width, printed; annotate_browser__write()
133 ui_browser__set_percent_color(browser, annotate_browser__write()
137 ui_browser__printf(browser, "%6" PRIu64 " ", annotate_browser__write()
140 ui_browser__printf(browser, "%6.2f ", annotate_browser__write()
145 ui_browser__write_nstring(browser, " ", 7 * ab->nr_events); annotate_browser__write()
148 ui_browser__set_percent_color(browser, 0, current_entry); annotate_browser__write()
149 ui_browser__write_nstring(browser, " ", 7 * ab->nr_events); annotate_browser__write()
153 ui_browser__printf(browser, "%*.2f ", IPC_WIDTH - 1, dl->ipc); annotate_browser__write()
155 ui_browser__write_nstring(browser, " ", IPC_WIDTH); annotate_browser__write()
157 ui_browser__printf(browser, "%*" PRIu64 " ", annotate_browser__write()
160 ui_browser__write_nstring(browser, " ", CYCLES_WIDTH); annotate_browser__write()
166 if (!browser->navkeypressed) annotate_browser__write()
170 ui_browser__write_nstring(browser, " ", width - pcnt_width); annotate_browser__write()
178 ui_browser__write_nstring(browser, bf, printed); annotate_browser__write()
179 ui_browser__write_nstring(browser, dl->line, width - printed - pcnt_width + 1); annotate_browser__write()
198 ui_browser__write_nstring(browser, bf, printed); annotate_browser__write()
199 ui_browser__set_color(browser, prev); annotate_browser__write()
211 color = ui_browser__set_color(browser, HE_COLORSET_ADDR); annotate_browser__write()
212 ui_browser__write_nstring(browser, bf, printed); annotate_browser__write()
214 ui_browser__set_color(browser, color); annotate_browser__write()
219 ui_browser__write_graph(browser, fwd ? SLSMG_DARROW_CHAR : annotate_browser__write()
223 ui_browser__write_graph(browser, SLSMG_RARROW_CHAR); annotate_browser__write()
226 ui_browser__write_nstring(browser, " ", 2); annotate_browser__write()
230 ui_browser__write_nstring(browser, " ", 2); annotate_browser__write()
232 ui_browser__write_graph(browser, SLSMG_LARROW_CHAR); annotate_browser__write()
238 ui_browser__write_nstring(browser, bf, width - pcnt_width - 3 - printed); annotate_browser__write()
255 static void annotate_browser__draw_current_jump(struct ui_browser *browser) annotate_browser__draw_current_jump() argument
257 struct annotate_browser *ab = container_of(browser, struct annotate_browser, b); annotate_browser__draw_current_jump()
287 ui_browser__set_color(browser, HE_COLORSET_CODE); annotate_browser__draw_current_jump()
288 __ui_browser__line_arrow(browser, pcnt_width + 2 + ab->addr_width, annotate_browser__draw_current_jump()
292 static unsigned int annotate_browser__refresh(struct ui_browser *browser) annotate_browser__refresh() argument
294 struct annotate_browser *ab = container_of(browser, struct annotate_browser, b); annotate_browser__refresh()
295 int ret = ui_browser__list_head_refresh(browser); annotate_browser__refresh()
299 annotate_browser__draw_current_jump(browser); annotate_browser__refresh()
301 ui_browser__set_color(browser, HE_COLORSET_NORMAL); annotate_browser__refresh()
302 __ui_browser__vline(browser, pcnt_width, 0, browser->height - 1); annotate_browser__refresh()
339 static void annotate_browser__set_top(struct annotate_browser *browser, annotate_browser__set_top() argument
344 ui_browser__refresh_dimensions(&browser->b); annotate_browser__set_top()
345 back = browser->b.height / 2; annotate_browser__set_top()
346 browser->b.top_idx = browser->b.index = idx; annotate_browser__set_top()
348 while (browser->b.top_idx != 0 && back != 0) { annotate_browser__set_top()
351 if (disasm_line__filter(&browser->b, &pos->node)) annotate_browser__set_top()
354 --browser->b.top_idx; annotate_browser__set_top()
358 browser->b.top = pos; annotate_browser__set_top()
359 browser->b.navkeypressed = true; annotate_browser__set_top()
362 static void annotate_browser__set_rb_top(struct annotate_browser *browser, annotate_browser__set_rb_top() argument
374 annotate_browser__set_top(browser, pos, idx); annotate_browser__set_rb_top()
375 browser->curr_hot = nd; annotate_browser__set_rb_top()
378 static void annotate_browser__calc_percent(struct annotate_browser *browser, annotate_browser__calc_percent() argument
381 struct map_symbol *ms = browser->b.priv; annotate_browser__calc_percent()
387 browser->entries = RB_ROOT; annotate_browser__calc_percent()
404 for (i = 0; i < browser->nr_events; i++) { annotate_browser__calc_percent()
422 disasm_rb_tree__insert(&browser->entries, bpos, annotate_browser__calc_percent()
423 browser->nr_events); annotate_browser__calc_percent()
427 browser->curr_hot = rb_last(&browser->entries); annotate_browser__calc_percent()
430 static bool annotate_browser__toggle_source(struct annotate_browser *browser) annotate_browser__toggle_source() argument
434 off_t offset = browser->b.index - browser->b.top_idx; annotate_browser__toggle_source()
436 browser->b.seek(&browser->b, offset, SEEK_CUR); annotate_browser__toggle_source()
437 dl = list_entry(browser->b.top, struct disasm_line, node); annotate_browser__toggle_source()
444 browser->b.nr_entries = browser->nr_entries; annotate_browser__toggle_source()
446 browser->b.seek(&browser->b, -offset, SEEK_CUR); annotate_browser__toggle_source()
447 browser->b.top_idx = bdl->idx - offset; annotate_browser__toggle_source()
448 browser->b.index = bdl->idx; annotate_browser__toggle_source()
452 browser->b.seek(&browser->b, -offset, SEEK_CUR); annotate_browser__toggle_source()
459 browser->b.nr_entries = browser->nr_asm_entries; annotate_browser__toggle_source()
461 browser->b.seek(&browser->b, -offset, SEEK_CUR); annotate_browser__toggle_source()
462 browser->b.top_idx = bdl->idx_asm - offset; annotate_browser__toggle_source()
463 browser->b.index = bdl->idx_asm; annotate_browser__toggle_source()
469 static void annotate_browser__init_asm_mode(struct annotate_browser *browser) annotate_browser__init_asm_mode() argument
471 ui_browser__reset_index(&browser->b); annotate_browser__init_asm_mode()
472 browser->b.nr_entries = browser->nr_asm_entries; annotate_browser__init_asm_mode()
483 static bool annotate_browser__callq(struct annotate_browser *browser, annotate_browser__callq() argument
487 struct map_symbol *ms = browser->b.priv; annotate_browser__callq()
488 struct disasm_line *dl = browser->selection; annotate_browser__callq()
520 ui_browser__show_title(&browser->b, title); annotate_browser__callq()
525 struct disasm_line *annotate_browser__find_offset(struct annotate_browser *browser, annotate_browser__find_offset() argument
528 struct map_symbol *ms = browser->b.priv; annotate_browser__find_offset()
537 if (!disasm_line__filter(&browser->b, &pos->node)) annotate_browser__find_offset()
544 static bool annotate_browser__jump(struct annotate_browser *browser) annotate_browser__jump() argument
546 struct disasm_line *dl = browser->selection; annotate_browser__jump()
552 dl = annotate_browser__find_offset(browser, dl->ops.target.offset, &idx); annotate_browser__jump()
558 annotate_browser__set_top(browser, dl, idx); annotate_browser__jump()
564 struct disasm_line *annotate_browser__find_string(struct annotate_browser *browser, annotate_browser__find_string() argument
567 struct map_symbol *ms = browser->b.priv; annotate_browser__find_string()
570 struct disasm_line *pos = browser->selection; annotate_browser__find_string()
572 *idx = browser->b.index; annotate_browser__find_string()
574 if (disasm_line__filter(&browser->b, &pos->node)) annotate_browser__find_string()
586 static bool __annotate_browser__search(struct annotate_browser *browser) __annotate_browser__search() argument
591 dl = annotate_browser__find_string(browser, browser->search_bf, &idx); __annotate_browser__search()
597 annotate_browser__set_top(browser, dl, idx); __annotate_browser__search()
598 browser->searching_backwards = false; __annotate_browser__search()
603 struct disasm_line *annotate_browser__find_string_reverse(struct annotate_browser *browser, annotate_browser__find_string_reverse() argument
606 struct map_symbol *ms = browser->b.priv; annotate_browser__find_string_reverse()
609 struct disasm_line *pos = browser->selection; annotate_browser__find_string_reverse()
611 *idx = browser->b.index; annotate_browser__find_string_reverse()
613 if (disasm_line__filter(&browser->b, &pos->node)) annotate_browser__find_string_reverse()
625 static bool __annotate_browser__search_reverse(struct annotate_browser *browser) __annotate_browser__search_reverse() argument
630 dl = annotate_browser__find_string_reverse(browser, browser->search_bf, &idx); __annotate_browser__search_reverse()
636 annotate_browser__set_top(browser, dl, idx); __annotate_browser__search_reverse()
637 browser->searching_backwards = true; __annotate_browser__search_reverse()
641 static bool annotate_browser__search_window(struct annotate_browser *browser, annotate_browser__search_window() argument
644 if (ui_browser__input_window("Search", "String: ", browser->search_bf, annotate_browser__search_window()
647 !*browser->search_bf) annotate_browser__search_window()
653 static bool annotate_browser__search(struct annotate_browser *browser, int delay_secs) annotate_browser__search() argument
655 if (annotate_browser__search_window(browser, delay_secs)) annotate_browser__search()
656 return __annotate_browser__search(browser); annotate_browser__search()
661 static bool annotate_browser__continue_search(struct annotate_browser *browser, annotate_browser__continue_search() argument
664 if (!*browser->search_bf) annotate_browser__continue_search()
665 return annotate_browser__search(browser, delay_secs); annotate_browser__continue_search()
667 return __annotate_browser__search(browser); annotate_browser__continue_search()
670 static bool annotate_browser__search_reverse(struct annotate_browser *browser, annotate_browser__search_reverse() argument
673 if (annotate_browser__search_window(browser, delay_secs)) annotate_browser__search_reverse()
674 return __annotate_browser__search_reverse(browser); annotate_browser__search_reverse()
680 bool annotate_browser__continue_search_reverse(struct annotate_browser *browser, annotate_browser__continue_search_reverse() argument
683 if (!*browser->search_bf) annotate_browser__continue_search_reverse()
684 return annotate_browser__search_reverse(browser, delay_secs); annotate_browser__continue_search_reverse()
686 return __annotate_browser__search_reverse(browser); annotate_browser__continue_search_reverse()
689 static void annotate_browser__update_addr_width(struct annotate_browser *browser) annotate_browser__update_addr_width() argument
692 browser->target_width = browser->min_addr_width; annotate_browser__update_addr_width()
694 browser->target_width = browser->max_addr_width; annotate_browser__update_addr_width()
696 browser->addr_width = browser->target_width; annotate_browser__update_addr_width()
699 browser->addr_width += browser->jumps_width + 1; annotate_browser__update_addr_width()
702 static int annotate_browser__run(struct annotate_browser *browser, annotate_browser__run() argument
707 struct map_symbol *ms = browser->b.priv; annotate_browser__run()
715 if (ui_browser__show(&browser->b, title, help) < 0) annotate_browser__run()
718 annotate_browser__calc_percent(browser, evsel); annotate_browser__run()
720 if (browser->curr_hot) { annotate_browser__run()
721 annotate_browser__set_rb_top(browser, browser->curr_hot); annotate_browser__run()
722 browser->b.navkeypressed = false; annotate_browser__run()
725 nd = browser->curr_hot; annotate_browser__run()
728 key = ui_browser__run(&browser->b, delay_secs); annotate_browser__run()
731 annotate_browser__calc_percent(browser, evsel); annotate_browser__run()
753 nd = rb_last(&browser->entries); annotate_browser__run()
755 nd = browser->curr_hot; annotate_browser__run()
761 nd = rb_first(&browser->entries); annotate_browser__run()
763 nd = browser->curr_hot; annotate_browser__run()
767 ui_browser__help_window(&browser->b, annotate_browser__run()
795 nd = browser->curr_hot; annotate_browser__run()
798 if (annotate_browser__toggle_source(browser)) annotate_browser__run()
803 annotate_browser__update_addr_width(browser); annotate_browser__run()
810 annotate_browser__update_addr_width(browser); annotate_browser__run()
813 if (annotate_browser__search(browser, delay_secs)) { annotate_browser__run()
819 if (browser->searching_backwards ? annotate_browser__run()
820 annotate_browser__continue_search_reverse(browser, delay_secs) : annotate_browser__run()
821 annotate_browser__continue_search(browser, delay_secs)) annotate_browser__run()
825 if (annotate_browser__search_reverse(browser, delay_secs)) annotate_browser__run()
832 seq++, browser->b.nr_entries, annotate_browser__run()
833 browser->b.height, annotate_browser__run()
834 browser->b.index, annotate_browser__run()
835 browser->b.top_idx, annotate_browser__run()
836 browser->nr_asm_entries); annotate_browser__run()
841 if (browser->selection == NULL) annotate_browser__run()
843 else if (browser->selection->offset == -1) annotate_browser__run()
845 else if (!browser->selection->ins) { annotate_browser__run()
846 if (strcmp(browser->selection->name, "retq")) annotate_browser__run()
849 } else if (!(annotate_browser__jump(browser) || annotate_browser__run()
850 annotate_browser__callq(browser, evsel, hbt))) { annotate_browser__run()
858 annotate_browser__update_addr_width(browser); annotate_browser__run()
870 annotate_browser__set_rb_top(browser, nd); annotate_browser__run()
873 ui_browser__hide(&browser->b); annotate_browser__run()
898 static unsigned count_insn(struct annotate_browser *browser, u64 start, u64 end) count_insn() argument
904 if (browser->offsets[offset]) count_insn()
910 static void count_and_fill(struct annotate_browser *browser, u64 start, u64 end, count_and_fill() argument
916 n_insn = count_insn(browser, start, end); count_and_fill()
925 struct disasm_line *dl = browser->offsets[offset]; count_and_fill()
938 static void annotate__compute_ipc(struct annotate_browser *browser, size_t size, annotate__compute_ipc() argument
956 count_and_fill(browser, ch->start, offset, ch); annotate__compute_ipc()
957 dl = browser->offsets[offset]; annotate__compute_ipc()
960 browser->have_cycles = true; annotate__compute_ipc()
966 static void annotate_browser__mark_jump_targets(struct annotate_browser *browser, annotate_browser__mark_jump_targets() argument
970 struct map_symbol *ms = browser->b.priv; annotate_browser__mark_jump_targets()
978 struct disasm_line *dl = browser->offsets[offset], *dlt; annotate_browser__mark_jump_targets()
984 dlt = browser->offsets[dl->ops.target.offset]; annotate_browser__mark_jump_targets()
993 if (++bdlt->jump_sources > browser->max_jump_sources) annotate_browser__mark_jump_targets()
994 browser->max_jump_sources = bdlt->jump_sources; annotate_browser__mark_jump_targets()
996 ++browser->nr_jumps; annotate_browser__mark_jump_targets()
1020 struct annotate_browser browser = { symbol__tui_annotate() local
1042 browser.offsets = zalloc(size * sizeof(struct disasm_line *)); symbol__tui_annotate()
1043 if (browser.offsets == NULL) { symbol__tui_annotate()
1062 browser.start = map__rip_2objdump(map, sym->start); symbol__tui_annotate()
1068 if (browser.b.width < line_len) symbol__tui_annotate()
1069 browser.b.width = line_len; symbol__tui_annotate()
1071 bpos->idx = browser.nr_entries++; symbol__tui_annotate()
1073 bpos->idx_asm = browser.nr_asm_entries++; symbol__tui_annotate()
1082 browser.offsets[pos->offset] = pos; symbol__tui_annotate()
1087 annotate_browser__mark_jump_targets(&browser, size); symbol__tui_annotate()
1088 annotate__compute_ipc(&browser, size, sym); symbol__tui_annotate()
1090 browser.addr_width = browser.target_width = browser.min_addr_width = hex_width(size); symbol__tui_annotate()
1091 browser.max_addr_width = hex_width(sym->end); symbol__tui_annotate()
1092 browser.jumps_width = width_jumps(browser.max_jump_sources); symbol__tui_annotate()
1093 browser.nr_events = nr_pcnt; symbol__tui_annotate()
1094 browser.b.nr_entries = browser.nr_entries; symbol__tui_annotate()
1095 browser.b.entries = &notes->src->source, symbol__tui_annotate()
1096 browser.b.width += 18; /* Percentage */ symbol__tui_annotate()
1099 annotate_browser__init_asm_mode(&browser); symbol__tui_annotate()
1101 annotate_browser__update_addr_width(&browser); symbol__tui_annotate()
1103 ret = annotate_browser__run(&browser, evsel, hbt); symbol__tui_annotate()
1110 free(browser.offsets); symbol__tui_annotate()
H A Dhists.c15 #include "../browser.h"
53 static int hist_browser__get_folding(struct hist_browser *browser) hist_browser__get_folding() argument
56 struct hists *hists = browser->hists; hist_browser__get_folding()
60 (nd = hists__filter_entries(nd, browser->min_pcnt)) != NULL; hist_browser__get_folding()
86 struct ui_browser *browser = &hb->b; hist_browser__update_rows() local
89 browser->rows = browser->height - header_offset; hist_browser__update_rows()
94 index_row = browser->index - browser->top_idx; hist_browser__update_rows()
95 if (index_row >= browser->rows) hist_browser__update_rows()
96 browser->index -= index_row - browser->rows + 1; hist_browser__update_rows()
99 static void hist_browser__refresh_dimensions(struct ui_browser *browser) hist_browser__refresh_dimensions() argument
101 struct hist_browser *hb = container_of(browser, struct hist_browser, b); hist_browser__refresh_dimensions()
104 browser->width = 3 + (hists__sort_list_width(hb->hists) + sizeof("[k]")); hist_browser__refresh_dimensions()
107 * before updating browser->width, as it will invalidate the hist_browser__refresh_dimensions()
111 ui_browser__refresh_dimensions(browser); hist_browser__refresh_dimensions()
115 static void hist_browser__gotorc(struct hist_browser *browser, int row, int column) hist_browser__gotorc() argument
117 u16 header_offset = browser->show_headers ? 1 : 0; hist_browser__gotorc()
119 ui_browser__gotorc(&browser->b, row + header_offset, column); hist_browser__gotorc()
122 static void hist_browser__reset(struct hist_browser *browser) hist_browser__reset() argument
128 browser->nr_callchain_rows = 0; hist_browser__reset()
130 hist_browser__update_nr_entries(browser); hist_browser__reset()
131 browser->b.nr_entries = hist_browser__nr_entries(browser); hist_browser__reset()
132 hist_browser__refresh_dimensions(&browser->b); hist_browser__reset()
133 ui_browser__reset_index(&browser->b); hist_browser__reset()
294 static bool hist_browser__toggle_fold(struct hist_browser *browser) hist_browser__toggle_fold() argument
296 struct hist_entry *he = browser->he_selection; hist_browser__toggle_fold()
297 struct map_symbol *ms = browser->selection; hist_browser__toggle_fold()
311 browser->b.nr_entries -= he->nr_rows; hist_browser__toggle_fold()
312 browser->nr_callchain_rows -= he->nr_rows; hist_browser__toggle_fold()
319 browser->b.nr_entries += he->nr_rows; hist_browser__toggle_fold()
320 browser->nr_callchain_rows += he->nr_rows; hist_browser__toggle_fold()
396 __hist_browser__set_folding(struct hist_browser *browser, bool unfold) __hist_browser__set_folding() argument
399 struct hists *hists = browser->hists; __hist_browser__set_folding()
402 (nd = hists__filter_entries(nd, browser->min_pcnt)) != NULL; __hist_browser__set_folding()
406 browser->nr_callchain_rows += he->nr_rows; __hist_browser__set_folding()
410 static void hist_browser__set_folding(struct hist_browser *browser, bool unfold) hist_browser__set_folding() argument
412 browser->nr_callchain_rows = 0; hist_browser__set_folding()
413 __hist_browser__set_folding(browser, unfold); hist_browser__set_folding()
415 browser->b.nr_entries = hist_browser__nr_entries(browser); hist_browser__set_folding()
417 ui_browser__reset_index(&browser->b); hist_browser__set_folding()
420 static void ui_browser__warn_lost_events(struct ui_browser *browser) ui_browser__warn_lost_events() argument
422 ui_browser__warning(browser, 4, ui_browser__warn_lost_events()
429 static int hist_browser__run(struct hist_browser *browser, const char *help) hist_browser__run() argument
433 struct hist_browser_timer *hbt = browser->hbt; hist_browser__run()
436 browser->b.entries = &browser->hists->entries; hist_browser__run()
437 browser->b.nr_entries = hist_browser__nr_entries(browser); hist_browser__run()
439 hists__browser_title(browser->hists, hbt, title, sizeof(title)); hist_browser__run()
441 if (ui_browser__show(&browser->b, title, help) < 0) hist_browser__run()
445 key = ui_browser__run(&browser->b, delay_secs); hist_browser__run()
452 if (hist_browser__has_filter(browser)) hist_browser__run()
453 hist_browser__update_nr_entries(browser); hist_browser__run()
455 nr_entries = hist_browser__nr_entries(browser); hist_browser__run()
456 ui_browser__update_nr_entries(&browser->b, nr_entries); hist_browser__run()
458 if (browser->hists->stats.nr_lost_warned != hist_browser__run()
459 browser->hists->stats.nr_events[PERF_RECORD_LOST]) { hist_browser__run()
460 browser->hists->stats.nr_lost_warned = hist_browser__run()
461 browser->hists->stats.nr_events[PERF_RECORD_LOST]; hist_browser__run()
462 ui_browser__warn_lost_events(&browser->b); hist_browser__run()
465 hists__browser_title(browser->hists, hist_browser__run()
467 ui_browser__show_title(&browser->b, title); hist_browser__run()
472 struct hist_entry *h = rb_entry(browser->b.top, hist_browser__run()
476 seq++, browser->b.nr_entries, hist_browser__run()
477 browser->hists->nr_entries, hist_browser__run()
478 browser->b.rows, hist_browser__run()
479 browser->b.index, hist_browser__run()
480 browser->b.top_idx, hist_browser__run()
486 hist_browser__set_folding(browser, false); hist_browser__run()
490 hist_browser__set_folding(browser, true); hist_browser__run()
493 browser->show_headers = !browser->show_headers; hist_browser__run()
494 hist_browser__update_rows(browser); hist_browser__run()
497 if (hist_browser__toggle_fold(browser)) hist_browser__run()
505 ui_browser__hide(&browser->b); hist_browser__run()
510 /* for hists browser */
519 typedef void (*print_callchain_entry_fn)(struct hist_browser *browser,
525 static void hist_browser__show_callchain_entry(struct hist_browser *browser, hist_browser__show_callchain_entry() argument
533 bool show_annotated = browser->show_dso && chain->ms.sym && symbol__annotation(chain->ms.sym)->src; hist_browser__show_callchain_entry()
536 width = browser->b.width - (offset + 2); hist_browser__show_callchain_entry()
537 if (ui_browser__is_current_entry(&browser->b, row)) { hist_browser__show_callchain_entry()
538 browser->selection = &chain->ms; hist_browser__show_callchain_entry()
543 ui_browser__set_color(&browser->b, color); hist_browser__show_callchain_entry()
544 hist_browser__gotorc(browser, row, 0); hist_browser__show_callchain_entry()
545 ui_browser__write_nstring(&browser->b, " ", offset); hist_browser__show_callchain_entry()
546 ui_browser__printf(&browser->b, "%c", folded_sign); hist_browser__show_callchain_entry()
547 ui_browser__write_graph(&browser->b, show_annotated ? SLSMG_RARROW_CHAR : ' '); hist_browser__show_callchain_entry()
548 ui_browser__write_nstring(&browser->b, str, width); hist_browser__show_callchain_entry()
563 typedef bool (*check_output_full_fn)(struct hist_browser *browser,
566 static bool hist_browser__check_output_full(struct hist_browser *browser, hist_browser__check_output_full() argument
569 return browser->b.rows == row; hist_browser__check_output_full()
572 static bool hist_browser__check_dump_full(struct hist_browser *browser __maybe_unused, hist_browser__check_dump_full()
580 static int hist_browser__show_callchain(struct hist_browser *browser, hist_browser__show_callchain() argument
622 browser->show_dso); hist_browser__show_callchain()
633 print(browser, chain, str, offset + extra_offset, row, arg); hist_browser__show_callchain()
637 if (is_output_full(browser, ++row)) hist_browser__show_callchain()
652 row += hist_browser__show_callchain(browser, &child->rb_root, hist_browser__show_callchain()
656 if (is_output_full(browser, row)) hist_browser__show_callchain()
756 static int hist_browser__show_entry(struct hist_browser *browser, hist_browser__show_entry() argument
762 int width = browser->b.width; hist_browser__show_entry()
764 bool current_entry = ui_browser__is_current_entry(&browser->b, row); hist_browser__show_entry()
770 browser->he_selection = entry; hist_browser__show_entry()
771 browser->selection = &entry->ms; hist_browser__show_entry()
781 .b = &browser->b, hist_browser__show_entry()
792 hist_browser__gotorc(browser, row, 0); hist_browser__show_entry()
795 if (perf_hpp__should_skip(fmt) || column++ < browser->b.horiz_scroll) perf_hpp__for_each_format()
798 if (current_entry && browser->b.navkeypressed) { perf_hpp__for_each_format()
799 ui_browser__set_color(&browser->b, perf_hpp__for_each_format()
802 ui_browser__set_color(&browser->b, perf_hpp__for_each_format()
808 ui_browser__printf(&browser->b, "%c ", folded_sign); perf_hpp__for_each_format()
813 ui_browser__printf(&browser->b, " "); perf_hpp__for_each_format()
821 ui_browser__printf(&browser->b, "%s", s); perf_hpp__for_each_format()
826 if (!browser->b.navkeypressed)
829 ui_browser__write_nstring(&browser->b, "", width);
836 if (folded_sign == '-' && row != browser->b.rows) {
850 printed += hist_browser__show_callchain(browser,
856 browser->he_selection = entry;
868 static int hists_browser__scnprintf_headers(struct hist_browser *browser, char *buf, size_t size) hists_browser__scnprintf_headers() argument
870 struct hists *hists = browser->hists; hists_browser__scnprintf_headers()
886 if (perf_hpp__should_skip(fmt) || column++ < browser->b.horiz_scroll) perf_hpp__for_each_format()
901 static void hist_browser__show_headers(struct hist_browser *browser) hist_browser__show_headers() argument
905 hists_browser__scnprintf_headers(browser, headers, sizeof(headers)); hist_browser__show_headers()
906 ui_browser__gotorc(&browser->b, 0, 0); hist_browser__show_headers()
907 ui_browser__set_color(&browser->b, HE_COLORSET_ROOT); hist_browser__show_headers()
908 ui_browser__write_nstring(&browser->b, headers, browser->b.width + 1); hist_browser__show_headers()
911 static void ui_browser__hists_init_top(struct ui_browser *browser) ui_browser__hists_init_top() argument
913 if (browser->top == NULL) { ui_browser__hists_init_top()
916 hb = container_of(browser, struct hist_browser, b); ui_browser__hists_init_top()
917 browser->top = rb_first(&hb->hists->entries); ui_browser__hists_init_top()
921 static unsigned int hist_browser__refresh(struct ui_browser *browser) hist_browser__refresh() argument
926 struct hist_browser *hb = container_of(browser, struct hist_browser, b); hist_browser__refresh()
933 ui_browser__hists_init_top(browser); hist_browser__refresh()
937 for (nd = browser->top; nd; nd = rb_next(nd)) { hist_browser__refresh()
949 if (row == browser->rows) hist_browser__refresh()
988 static void ui_browser__hists_seek(struct ui_browser *browser, ui_browser__hists_seek() argument
996 hb = container_of(browser, struct hist_browser, b); ui_browser__hists_seek()
998 if (browser->nr_entries == 0) ui_browser__hists_seek()
1001 ui_browser__hists_init_top(browser); ui_browser__hists_seek()
1005 nd = hists__filter_entries(rb_first(browser->entries), ui_browser__hists_seek()
1009 nd = browser->top; ui_browser__hists_seek()
1012 nd = hists__filter_prev_entries(rb_last(browser->entries), ui_browser__hists_seek()
1024 h = rb_entry(browser->top, struct hist_entry, rb_node); ui_browser__hists_seek()
1055 browser->top = nd; ui_browser__hists_seek()
1063 browser->top = nd; ui_browser__hists_seek()
1076 browser->top = nd; ui_browser__hists_seek()
1086 browser->top = nd; ui_browser__hists_seek()
1097 browser->top = nd; ui_browser__hists_seek()
1112 browser->top = nd; ui_browser__hists_seek()
1118 static int hist_browser__fprintf_callchain(struct hist_browser *browser, hist_browser__fprintf_callchain() argument
1129 hist_browser__show_callchain(browser, &he->sorted_chain, 1, 0, total, hist_browser__fprintf_callchain()
1135 static int hist_browser__fprintf_entry(struct hist_browser *browser, hist_browser__fprintf_entry() argument
1171 printed += hist_browser__fprintf_callchain(browser, he, fp);
1176 static int hist_browser__fprintf(struct hist_browser *browser, FILE *fp) hist_browser__fprintf() argument
1178 struct rb_node *nd = hists__filter_entries(rb_first(browser->b.entries), hist_browser__fprintf()
1179 browser->min_pcnt); hist_browser__fprintf()
1185 printed += hist_browser__fprintf_entry(browser, h, fp); hist_browser__fprintf()
1186 nd = hists__filter_entries(rb_next(nd), browser->min_pcnt); hist_browser__fprintf()
1192 static int hist_browser__dump(struct hist_browser *browser) hist_browser__dump() argument
1198 scnprintf(filename, sizeof(filename), "perf.hist.%d", browser->print_seq); hist_browser__dump()
1204 if (++browser->print_seq == 8192) { hist_browser__dump()
1218 ++browser->print_seq; hist_browser__dump()
1219 hist_browser__fprintf(browser, fp); hist_browser__dump()
1230 struct hist_browser *browser = zalloc(sizeof(*browser)); hist_browser__new() local
1232 if (browser) { hist_browser__new()
1233 browser->hists = hists; hist_browser__new()
1234 browser->b.refresh = hist_browser__refresh; hist_browser__new()
1235 browser->b.refresh_dimensions = hist_browser__refresh_dimensions; hist_browser__new()
1236 browser->b.seek = ui_browser__hists_seek; hist_browser__new()
1237 browser->b.use_navkeypressed = true; hist_browser__new()
1238 browser->show_headers = symbol_conf.show_hist_headers; hist_browser__new()
1239 browser->hbt = hbt; hist_browser__new()
1240 browser->env = env; hist_browser__new()
1243 return browser; hist_browser__new()
1246 static void hist_browser__delete(struct hist_browser *browser) hist_browser__delete() argument
1248 free(browser); hist_browser__delete()
1251 static struct hist_entry *hist_browser__selected_entry(struct hist_browser *browser) hist_browser__selected_entry() argument
1253 return browser->he_selection; hist_browser__selected_entry()
1256 static struct thread *hist_browser__selected_thread(struct hist_browser *browser) hist_browser__selected_thread() argument
1258 return browser->he_selection->thread; hist_browser__selected_thread()
1261 /* Check whether the browser is for 'top' or 'report' */ is_report_browser()
1444 int (*fn)(struct hist_browser *browser, struct popup_action *act);
1448 do_annotate(struct hist_browser *browser, struct popup_action *act) do_annotate() argument
1455 if (!objdump_path && perf_env__lookup_objdump(browser->env)) do_annotate()
1462 evsel = hists_to_evsel(browser->hists); do_annotate()
1463 err = map_symbol__tui_annotate(&act->ms, evsel, browser->hbt); do_annotate()
1464 he = hist_browser__selected_entry(browser); do_annotate()
1472 ui_browser__update_nr_entries(&browser->b, browser->hists->nr_entries); do_annotate()
1474 ui_browser__handle_resize(&browser->b); do_annotate()
1479 add_annotate_opt(struct hist_browser *browser __maybe_unused, add_annotate_opt()
1496 do_zoom_thread(struct hist_browser *browser, struct popup_action *act) do_zoom_thread() argument
1500 if (browser->hists->thread_filter) { do_zoom_thread()
1501 pstack__remove(browser->pstack, &browser->hists->thread_filter); do_zoom_thread()
1503 thread__zput(browser->hists->thread_filter); do_zoom_thread()
1509 browser->hists->thread_filter = thread__get(thread); do_zoom_thread()
1511 pstack__push(browser->pstack, &browser->hists->thread_filter); do_zoom_thread()
1514 hists__filter_by_thread(browser->hists); do_zoom_thread()
1515 hist_browser__reset(browser); do_zoom_thread()
1520 add_thread_opt(struct hist_browser *browser, struct popup_action *act, add_thread_opt() argument
1527 browser->hists->thread_filter ? "out of" : "into", add_thread_opt()
1538 do_zoom_dso(struct hist_browser *browser, struct popup_action *act) do_zoom_dso() argument
1542 if (browser->hists->dso_filter) { do_zoom_dso()
1543 pstack__remove(browser->pstack, &browser->hists->dso_filter); do_zoom_dso()
1545 browser->hists->dso_filter = NULL; do_zoom_dso()
1552 browser->hists->dso_filter = map->dso; do_zoom_dso()
1554 pstack__push(browser->pstack, &browser->hists->dso_filter); do_zoom_dso()
1557 hists__filter_by_dso(browser->hists); do_zoom_dso()
1558 hist_browser__reset(browser); do_zoom_dso()
1563 add_dso_opt(struct hist_browser *browser, struct popup_action *act, add_dso_opt() argument
1570 browser->hists->dso_filter ? "out of" : "into", add_dso_opt()
1580 do_browse_map(struct hist_browser *browser __maybe_unused, do_browse_map()
1588 add_map_opt(struct hist_browser *browser __maybe_unused, add_map_opt()
1603 do_run_script(struct hist_browser *browser __maybe_unused, do_run_script()
1622 add_script_opt(struct hist_browser *browser __maybe_unused, add_script_opt()
1646 do_switch_data(struct hist_browser *browser __maybe_unused, do_switch_data()
1659 add_switch_opt(struct hist_browser *browser, add_switch_opt() argument
1662 if (!is_report_browser(browser->hbt)) add_switch_opt()
1673 do_exit_browser(struct hist_browser *browser __maybe_unused, do_exit_browser()
1680 add_exit_opt(struct hist_browser *browser __maybe_unused, add_exit_opt()
1691 do_zoom_socket(struct hist_browser *browser, struct popup_action *act) do_zoom_socket() argument
1693 if (browser->hists->socket_filter > -1) { do_zoom_socket()
1694 pstack__remove(browser->pstack, &browser->hists->socket_filter); do_zoom_socket()
1695 browser->hists->socket_filter = -1; do_zoom_socket()
1698 browser->hists->socket_filter = act->socket; do_zoom_socket()
1700 pstack__push(browser->pstack, &browser->hists->socket_filter); do_zoom_socket()
1703 hists__filter_by_socket(browser->hists); do_zoom_socket()
1704 hist_browser__reset(browser); do_zoom_socket()
1709 add_socket_opt(struct hist_browser *browser, struct popup_action *act, add_socket_opt() argument
1716 (browser->hists->socket_filter > -1) ? "out of" : "into", add_socket_opt()
1751 struct hist_browser *browser = hist_browser__new(hists, hbt, env); perf_evsel__hists_browse() local
1766 "q/ESC/CTRL+C Exit browser\n\n" \ perf_evsel__hists_browse()
1798 if (browser == NULL) perf_evsel__hists_browse()
1806 browser->min_pcnt = min_pcnt; perf_evsel__hists_browse()
1807 hist_browser__update_nr_entries(browser); perf_evsel__hists_browse()
1810 browser->pstack = pstack__new(3); perf_evsel__hists_browse()
1811 if (browser->pstack == NULL) perf_evsel__hists_browse()
1828 ++browser->b.columns; perf_hpp__for_each_format()
1842 key = hist_browser__run(browser, helpline);
1844 if (browser->he_selection != NULL) {
1845 thread = hist_browser__selected_thread(browser);
1846 map = browser->selection->map;
1847 socked_id = browser->he_selection->socket;
1855 * Exit the browser, let hists__browser_tree
1861 ui_browser__warning(&browser->b, delay_secs * 2,
1867 if (browser->selection == NULL ||
1868 browser->selection->sym == NULL ||
1869 browser->selection->map->dso->annotate_warned)
1872 actions->ms.map = browser->selection->map;
1873 actions->ms.sym = browser->selection->sym;
1874 do_annotate(browser, actions);
1877 hist_browser__dump(browser);
1881 do_zoom_dso(browser, actions);
1884 browser->show_dso = !browser->show_dso;
1888 do_zoom_thread(browser, actions);
1892 do_zoom_socket(browser, actions);
1902 hist_browser__reset(browser);
1909 do_run_script(browser, actions);
1914 key = do_switch_data(browser, actions);
1937 ui_browser__help_window(&browser->b,
1949 if (pstack__empty(browser->pstack)) {
1957 ui_browser__dialog_yesno(&browser->b,
1963 top = pstack__peek(browser->pstack);
1964 if (top == &browser->hists->dso_filter) {
1970 do_zoom_dso(browser, actions);
1971 } else if (top == &browser->hists->thread_filter) {
1972 do_zoom_thread(browser, actions);
1973 } else if (top == &browser->hists->socket_filter) {
1974 do_zoom_socket(browser, actions);
2008 if (browser->selection == NULL)
2012 bi = browser->he_selection->branch_info;
2017 nr_options += add_annotate_opt(browser,
2023 nr_options += add_annotate_opt(browser,
2029 nr_options += add_annotate_opt(browser,
2032 browser->selection->map,
2033 browser->selection->sym);
2036 nr_options += add_thread_opt(browser, &actions[nr_options],
2038 nr_options += add_dso_opt(browser, &actions[nr_options],
2040 nr_options += add_map_opt(browser, &actions[nr_options],
2042 browser->selection ?
2043 browser->selection->map : NULL);
2044 nr_options += add_socket_opt(browser, &actions[nr_options],
2048 if (browser->he_selection) {
2049 nr_options += add_script_opt(browser,
2054 * Note that browser->selection != NULL
2055 * when browser->he_selection is not NULL,
2056 * so we don't need to check browser->selection
2057 * before fetching browser->selection->sym like what
2058 * we do before fetching browser->selection->map.
2062 if (sort__has_sym && browser->selection->sym) {
2063 nr_options += add_script_opt(browser,
2066 NULL, browser->selection->sym);
2069 nr_options += add_script_opt(browser, &actions[nr_options],
2071 nr_options += add_switch_opt(browser, &actions[nr_options],
2074 nr_options += add_exit_opt(browser, &actions[nr_options],
2085 key = act->fn(browser, act);
2092 pstack__delete(browser->pstack);
2094 hist_browser__delete(browser);
2107 static void perf_evsel_menu__write(struct ui_browser *browser, perf_evsel_menu__write() argument
2110 struct perf_evsel_menu *menu = container_of(browser, perf_evsel_menu__write()
2114 bool current_entry = ui_browser__is_current_entry(browser, row); perf_evsel_menu__write()
2121 ui_browser__set_color(browser, current_entry ? HE_COLORSET_SELECTED : perf_evsel_menu__write()
2138 ui_browser__printf(browser, "%s", bf);
2144 ui_browser__set_color(browser, HE_COLORSET_TOP);
2151 ui_browser__write_nstring(browser, warn, browser->width - printed);
2242 static bool filter_group_entries(struct ui_browser *browser __maybe_unused, filter_group_entries()
H A Dscripts.c10 #include "../browser.h"
75 static void script_browser__write(struct ui_browser *browser, script_browser__write() argument
79 bool current_entry = ui_browser__is_current_entry(browser, row); script_browser__write()
81 ui_browser__set_color(browser, current_entry ? HE_COLORSET_SELECTED : script_browser__write()
84 ui_browser__write_nstring(browser, sline->line, browser->width); script_browser__write()
87 static int script_browser__run(struct perf_script_browser *browser) script_browser__run() argument
91 if (ui_browser__show(&browser->b, browser->script_name, script_browser__run()
96 key = ui_browser__run(&browser->b, 0); script_browser__run()
102 ui_browser__hide(&browser->b); script_browser__run()
H A Dheader.c3 #include "ui/browser.h"
11 static void ui_browser__argv_write(struct ui_browser *browser, ui_browser__argv_write() argument
17 bool current_entry = ui_browser__is_current_entry(browser, row); ui_browser__argv_write()
18 unsigned long offset = (unsigned long)browser->priv; ui_browser__argv_write()
25 ui_browser__set_color(browser, current_entry ? HE_COLORSET_SELECTED : ui_browser__argv_write()
28 ui_browser__write_nstring(browser, str, browser->width); ui_browser__argv_write()
40 "q/ESC/CTRL+C Exit browser"; list_menu__run()
/linux-4.4.14/tools/perf/ui/tui/
H A Dutil.c9 #include "../browser.h"
16 static void ui_browser__argv_write(struct ui_browser *browser, ui_browser__argv_write() argument
20 bool current_entry = ui_browser__is_current_entry(browser, row); ui_browser__argv_write()
22 ui_browser__set_color(browser, current_entry ? HE_COLORSET_SELECTED : ui_browser__argv_write()
24 ui_browser__write_nstring(browser, *arg, browser->width); ui_browser__argv_write()
H A Dprogress.c6 #include "../browser.h"
H A Dsetup.c9 #include "../browser.h"
/linux-4.4.14/drivers/staging/media/cxd2099/
H A Dcxd2099.h22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dcxd2099.c22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
/linux-4.4.14/drivers/media/dvb-frontends/
H A Ddrxd.h21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Disl6421.h22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dlnbp22.h22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dtdhd1.h20 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Ddrxd_firm.h21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Disl6405.h22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dlnbp21.h21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dbsbe1-d01a.h21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dbsbe1.h19 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dlnbp22.c22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dbsru6.h19 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Disl6405.c22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Disl6421.c22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dlnbp21.c22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Ddrxd_firm.c21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Ddrxd_map_firm.h21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dtda18271c2dd.c22 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Ddrxd_hard.c21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Ddrxk_hard.c21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
/linux-4.4.14/drivers/media/pci/ddbridge/
H A Dddbridge-regs.h21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dddbridge.h21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dddbridge-core.c21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
/linux-4.4.14/drivers/media/pci/ngene/
H A Dngene-i2c.c27 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dngene-dvb.c27 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dngene-cards.c27 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dngene.h21 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dngene-core.c27 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
/linux-4.4.14/tools/perf/
H A Dbuiltin-annotate.c154 ui__error("GTK browser not found!\n"); hists__find_annotations()
266 ui__error("GTK browser not found!\n"); __cmd_annotate()
H A Dbuiltin-help.c410 execl_perf_cmd("web--browse", "-c", "help.browser", path, NULL); open_html()
434 OPT_SET_UINT('w', "web", &help_format, "show manual in web browser", cmd_help()
H A Dbuiltin-report.c425 ui__error("GTK browser not found!\n"); report__gtk_browse_hists()
916 * Only in the TUI browser we are doing integrated annotation, cmd_report()
933 * the ui browser. cmd_report()
H A Dbuiltin-script.c1524 * Currently the only user of this function is the script browser, which
1526 * show the output in a perf browser.
/linux-4.4.14/drivers/media/pci/ttpci/
H A Dav7110_ca.c25 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dav7110_ir.c20 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dbudget-core.c31 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dbudget-patch.c27 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dbudget.c31 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dav7110_av.c25 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dav7110_hw.c23 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dav7110_v4l.c23 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dbudget-av.c30 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dbudget-ci.c26 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Dav7110.c26 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
/linux-4.4.14/drivers/media/pci/bt8xx/
H A Dbt878.c26 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
/linux-4.4.14/drivers/media/dvb-core/
H A Ddvb_ca_en50221.c28 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Ddvb_net.c30 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
H A Ddvb_frontend.c25 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
/linux-4.4.14/scripts/
H A Danalyze_suspend.py2477 # add the code which will manipulate the data in the browser
/linux-4.4.14/drivers/platform/x86/
H A Dthinkpad_acpi.c3555 /* Thinkpad X1 Carbon support 5 modes including Home mode, Web browser

Completed in 1234 milliseconds