162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef _PERF_UI_H_
362306a36Sopenharmony_ci#define _PERF_UI_H_ 1
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include "../util/mutex.h"
662306a36Sopenharmony_ci#include <stdbool.h>
762306a36Sopenharmony_ci#include <linux/compiler.h>
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciextern struct mutex ui__lock;
1062306a36Sopenharmony_ciextern void *perf_gtk_handle;
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciextern int use_browser;
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_civoid setup_browser(bool fallback_to_pager);
1562306a36Sopenharmony_civoid exit_browser(bool wait_for_ok);
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#ifdef HAVE_SLANG_SUPPORT
1862306a36Sopenharmony_ciint ui__init(void);
1962306a36Sopenharmony_civoid ui__exit(bool wait_for_ok);
2062306a36Sopenharmony_ci#else
2162306a36Sopenharmony_cistatic inline int ui__init(void)
2262306a36Sopenharmony_ci{
2362306a36Sopenharmony_ci	return -1;
2462306a36Sopenharmony_ci}
2562306a36Sopenharmony_cistatic inline void ui__exit(bool wait_for_ok __maybe_unused) {}
2662306a36Sopenharmony_ci#endif
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_civoid ui__refresh_dimensions(bool force);
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_cistruct option;
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciint stdio__config_color(const struct option *opt, const char *mode, int unset);
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_civoid pthread__block_sigwinch(void);
3562306a36Sopenharmony_civoid pthread__unblock_sigwinch(void);
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#endif /* _PERF_UI_H_ */
38