fbaa1507ebfe824943c13df2b4619afcfb75be0d
[linux-2.6-microblaze.git] / tools / perf / ui / progress.h
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