162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef _PERF_UI_BROWSER_HISTS_H_
362306a36Sopenharmony_ci#define _PERF_UI_BROWSER_HISTS_H_ 1
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include "ui/browser.h"
662306a36Sopenharmony_ci
762306a36Sopenharmony_cistruct annotation_options;
862306a36Sopenharmony_cistruct evsel;
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cistruct hist_browser {
1162306a36Sopenharmony_ci	struct ui_browser   b;
1262306a36Sopenharmony_ci	struct hists	    *hists;
1362306a36Sopenharmony_ci	struct hist_entry   *he_selection;
1462306a36Sopenharmony_ci	struct map_symbol   *selection;
1562306a36Sopenharmony_ci	struct hist_browser_timer *hbt;
1662306a36Sopenharmony_ci	struct pstack	    *pstack;
1762306a36Sopenharmony_ci	struct perf_env	    *env;
1862306a36Sopenharmony_ci	struct annotation_options *annotation_opts;
1962306a36Sopenharmony_ci	struct evsel	    *block_evsel;
2062306a36Sopenharmony_ci	int		     print_seq;
2162306a36Sopenharmony_ci	bool		     show_dso;
2262306a36Sopenharmony_ci	bool		     show_headers;
2362306a36Sopenharmony_ci	float		     min_pcnt;
2462306a36Sopenharmony_ci	u64		     nr_non_filtered_entries;
2562306a36Sopenharmony_ci	u64		     nr_hierarchy_entries;
2662306a36Sopenharmony_ci	u64		     nr_callchain_rows;
2762306a36Sopenharmony_ci	bool		     c2c_filter;
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	/* Get title string. */
3062306a36Sopenharmony_ci	int                  (*title)(struct hist_browser *browser,
3162306a36Sopenharmony_ci			     char *bf, size_t size);
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cistruct hist_browser *hist_browser__new(struct hists *hists);
3562306a36Sopenharmony_civoid hist_browser__delete(struct hist_browser *browser);
3662306a36Sopenharmony_ciint hist_browser__run(struct hist_browser *browser, const char *help,
3762306a36Sopenharmony_ci		      bool warn_lost_event, int key);
3862306a36Sopenharmony_civoid hist_browser__init(struct hist_browser *browser,
3962306a36Sopenharmony_ci			struct hists *hists);
4062306a36Sopenharmony_ci#endif /* _PERF_UI_BROWSER_HISTS_H_ */
41