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