1 // SPDX-License-Identifier: GPL-2.0
2 #include <linux/kernel.h>
5 static void null_progress__update(struct ui_progress
*p __maybe_unused
)
9 static struct ui_progress_ops null_progress__ops
=
11 .update
= null_progress__update
,
14 struct ui_progress_ops
*ui_progress__ops
= &null_progress__ops
;
16 void ui_progress__update(struct ui_progress
*p
, u64 adv
)
22 if (p
->curr
>= p
->next
) {
23 u64 nr
= DIV_ROUND_UP(p
->curr
- last
, p
->step
);
25 p
->next
+= nr
* p
->step
;
26 ui_progress__ops
->update(p
);
30 void __ui_progress__init(struct ui_progress
*p
, u64 total
,
31 const char *title
, bool size
)
34 p
->next
= p
->step
= total
/ 16 ?: 1;
39 if (ui_progress__ops
->init
)
40 ui_progress__ops
->init(p
);
43 void ui_progress__finish(void)
45 if (ui_progress__ops
->finish
)
46 ui_progress__ops
->finish();