162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef _PERF_UI_PROGRESS_H_ 362306a36Sopenharmony_ci#define _PERF_UI_PROGRESS_H_ 1 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/types.h> 662306a36Sopenharmony_ci 762306a36Sopenharmony_civoid ui_progress__finish(void); 862306a36Sopenharmony_ci 962306a36Sopenharmony_cistruct ui_progress { 1062306a36Sopenharmony_ci const char *title; 1162306a36Sopenharmony_ci u64 curr, next, step, total; 1262306a36Sopenharmony_ci bool size; 1362306a36Sopenharmony_ci}; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_civoid __ui_progress__init(struct ui_progress *p, u64 total, 1662306a36Sopenharmony_ci const char *title, bool size); 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#define ui_progress__init(p, total, title) \ 1962306a36Sopenharmony_ci __ui_progress__init(p, total, title, false) 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci#define ui_progress__init_size(p, total, title) \ 2262306a36Sopenharmony_ci __ui_progress__init(p, total, title, true) 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_civoid ui_progress__update(struct ui_progress *p, u64 adv); 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cistruct ui_progress_ops { 2762306a36Sopenharmony_ci void (*init)(struct ui_progress *p); 2862306a36Sopenharmony_ci void (*update)(struct ui_progress *p); 2962306a36Sopenharmony_ci void (*finish)(void); 3062306a36Sopenharmony_ci}; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciextern struct ui_progress_ops *ui_progress__ops; 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci#endif 35