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 | |