1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _PERF_UI_PROGRESS_H_ 3 #define _PERF_UI_PROGRESS_H_ 1 4 5 #include <linux/types.h> 6 7 void ui_progress__finish(void); 8 9 struct ui_progress { 10 const char *title; 11 u64 curr, next, step, total; 12 bool size; 13 }; 14 15 void __ui_progress__init(struct ui_progress *p, u64 total, 16 const char *title, bool size); 17 18 #define ui_progress__init(p, total, title) \ 19 __ui_progress__init(p, total, title, false) 20 21 #define ui_progress__init_size(p, total, title) \ 22 __ui_progress__init(p, total, title, true) 23 24 void ui_progress__update(struct ui_progress *p, u64 adv); 25 26 struct ui_progress_ops { 27 void (*init)(struct ui_progress *p); 28 void (*update)(struct ui_progress *p); 29 void (*finish)(void); 30 }; 31 32 extern struct ui_progress_ops *ui_progress__ops; 33 34 #endif 35