1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2aca7a94dSNamhyung Kim #ifndef _PERF_UI_PROGRESS_H_ 3aca7a94dSNamhyung Kim #define _PERF_UI_PROGRESS_H_ 1 4aca7a94dSNamhyung Kim 5d944c4eeSBorislav Petkov #include <linux/types.h> 6aca7a94dSNamhyung Kim 74d3001fdSArnaldo Carvalho de Melo void ui_progress__finish(void); 84d3001fdSArnaldo Carvalho de Melo 94d3001fdSArnaldo Carvalho de Melo struct ui_progress { 104d3001fdSArnaldo Carvalho de Melo const char *title; 114d3001fdSArnaldo Carvalho de Melo u64 curr, next, step, total; 128233822fSJiri Olsa bool size; 134d3001fdSArnaldo Carvalho de Melo }; 144d3001fdSArnaldo Carvalho de Melo 158233822fSJiri Olsa void __ui_progress__init(struct ui_progress *p, u64 total, 168233822fSJiri Olsa const char *title, bool size); 178233822fSJiri Olsa 188233822fSJiri Olsa #define ui_progress__init(p, total, title) \ 198233822fSJiri Olsa __ui_progress__init(p, total, title, false) 208233822fSJiri Olsa 218233822fSJiri Olsa #define ui_progress__init_size(p, total, title) \ 228233822fSJiri Olsa __ui_progress__init(p, total, title, true) 238233822fSJiri Olsa 244d3001fdSArnaldo Carvalho de Melo void ui_progress__update(struct ui_progress *p, u64 adv); 254d3001fdSArnaldo Carvalho de Melo 264779a2e9SArnaldo Carvalho de Melo struct ui_progress_ops { 2725cc4eb4SJiri Olsa void (*init)(struct ui_progress *p); 284d3001fdSArnaldo Carvalho de Melo void (*update)(struct ui_progress *p); 29a5580f3eSNamhyung Kim void (*finish)(void); 30688f2f5bSNamhyung Kim }; 31688f2f5bSNamhyung Kim 324779a2e9SArnaldo Carvalho de Melo extern struct ui_progress_ops *ui_progress__ops; 33688f2f5bSNamhyung Kim 34aca7a94dSNamhyung Kim #endif 35