1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _PERF_UI_BROWSER_HISTS_H_ 3*4882a593Smuzhiyun #define _PERF_UI_BROWSER_HISTS_H_ 1 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include "ui/browser.h" 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun struct annotation_options; 8*4882a593Smuzhiyun struct evsel; 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun struct hist_browser { 11*4882a593Smuzhiyun struct ui_browser b; 12*4882a593Smuzhiyun struct hists *hists; 13*4882a593Smuzhiyun struct hist_entry *he_selection; 14*4882a593Smuzhiyun struct map_symbol *selection; 15*4882a593Smuzhiyun struct hist_browser_timer *hbt; 16*4882a593Smuzhiyun struct pstack *pstack; 17*4882a593Smuzhiyun struct perf_env *env; 18*4882a593Smuzhiyun struct annotation_options *annotation_opts; 19*4882a593Smuzhiyun struct evsel *block_evsel; 20*4882a593Smuzhiyun int print_seq; 21*4882a593Smuzhiyun bool show_dso; 22*4882a593Smuzhiyun bool show_headers; 23*4882a593Smuzhiyun float min_pcnt; 24*4882a593Smuzhiyun u64 nr_non_filtered_entries; 25*4882a593Smuzhiyun u64 nr_hierarchy_entries; 26*4882a593Smuzhiyun u64 nr_callchain_rows; 27*4882a593Smuzhiyun bool c2c_filter; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun /* Get title string. */ 30*4882a593Smuzhiyun int (*title)(struct hist_browser *browser, 31*4882a593Smuzhiyun char *bf, size_t size); 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun struct hist_browser *hist_browser__new(struct hists *hists); 35*4882a593Smuzhiyun void hist_browser__delete(struct hist_browser *browser); 36*4882a593Smuzhiyun int hist_browser__run(struct hist_browser *browser, const char *help, 37*4882a593Smuzhiyun bool warn_lost_event, int key); 38*4882a593Smuzhiyun void hist_browser__init(struct hist_browser *browser, 39*4882a593Smuzhiyun struct hists *hists); 40*4882a593Smuzhiyun #endif /* _PERF_UI_BROWSER_HISTS_H_ */ 41