blob: 594bbe6935ddb0cb0978286a33d37496b179c852 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Arnaldo Carvalho de Melo34cea7f2010-08-08 19:56:47 -03002#ifndef _PERF_UI_PROGRESS_H_
3#define _PERF_UI_PROGRESS_H_ 1
4
Borislav Petkovd944c4e2014-04-25 21:31:02 +02005#include <linux/types.h>
Arnaldo Carvalho de Melo34cea7f2010-08-08 19:56:47 -03006
Arnaldo Carvalho de Melo4d3001f2013-10-23 15:40:38 -03007void ui_progress__finish(void);
Arnaldo Carvalho de Melo48000a12014-12-17 17:24:45 -03008
Arnaldo Carvalho de Melo4d3001f2013-10-23 15:40:38 -03009struct ui_progress {
10 const char *title;
11 u64 curr, next, step, total;
12};
Arnaldo Carvalho de Melo48000a12014-12-17 17:24:45 -030013
Arnaldo Carvalho de Melo4d3001f2013-10-23 15:40:38 -030014void ui_progress__init(struct ui_progress *p, u64 total, const char *title);
15void ui_progress__update(struct ui_progress *p, u64 adv);
16
Arnaldo Carvalho de Melo4779a2e2013-10-23 14:08:48 -030017struct ui_progress_ops {
Arnaldo Carvalho de Melo4d3001f2013-10-23 15:40:38 -030018 void (*update)(struct ui_progress *p);
Namhyung Kima5580f32012-11-13 22:30:34 +090019 void (*finish)(void);
Namhyung Kim688f2f52012-11-13 22:30:32 +090020};
21
Arnaldo Carvalho de Melo4779a2e2013-10-23 14:08:48 -030022extern struct ui_progress_ops *ui_progress__ops;
Namhyung Kim688f2f52012-11-13 22:30:32 +090023
Arnaldo Carvalho de Melo34cea7f2010-08-08 19:56:47 -030024#endif