Merge tag 'timers-core-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / tools / perf / ui / progress.h
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