提交 3bfe4dbf 编写于 作者: J Jes Sorensen 提交者: Kevin Wolf

Add documentation for qemu_progress_{init,print}()

Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: NKevin Wolf <kwolf@redhat.com>
上级 2860e3eb
...@@ -341,7 +341,7 @@ void qemu_iovec_memset_skip(QEMUIOVector *qiov, int c, size_t count, ...@@ -341,7 +341,7 @@ void qemu_iovec_memset_skip(QEMUIOVector *qiov, int c, size_t count,
void qemu_progress_init(int enabled, float min_skip); void qemu_progress_init(int enabled, float min_skip);
void qemu_progress_end(void); void qemu_progress_end(void);
void qemu_progress_print(float percent, int max); void qemu_progress_print(float delta, int max);
#define QEMU_FILE_TYPE_BIOS 0 #define QEMU_FILE_TYPE_BIOS 0
#define QEMU_FILE_TYPE_KEYMAP 1 #define QEMU_FILE_TYPE_KEYMAP 1
......
...@@ -96,6 +96,13 @@ static void progress_dummy_init(void) ...@@ -96,6 +96,13 @@ static void progress_dummy_init(void)
state.end = progress_dummy_end; state.end = progress_dummy_end;
} }
/*
* Initialize progress reporting.
* If @enabled is false, actual reporting is suppressed. The user can
* still trigger a report by sending a SIGUSR1.
* Reports are also suppressed unless we've had at least @min_skip
* percent progress since the last report.
*/
void qemu_progress_init(int enabled, float min_skip) void qemu_progress_init(int enabled, float min_skip)
{ {
state.min_skip = min_skip; state.min_skip = min_skip;
...@@ -111,14 +118,25 @@ void qemu_progress_end(void) ...@@ -111,14 +118,25 @@ void qemu_progress_end(void)
state.end(); state.end();
} }
void qemu_progress_print(float percent, int max) /*
* Report progress.
* @delta is how much progress we made.
* If @max is zero, @delta is an absolut value of the total job done.
* Else, @delta is a progress delta since the last call, as a fraction
* of @max. I.e. the delta is @delta * @max / 100. This allows
* relative accounting of functions which may be a different fraction of
* the full job, depending on the context they are called in. I.e.
* a function might be considered 40% of the full job if used from
* bdrv_img_create() but only 20% if called from img_convert().
*/
void qemu_progress_print(float delta, int max)
{ {
float current; float current;
if (max == 0) { if (max == 0) {
current = percent; current = delta;
} else { } else {
current = state.current + percent / 100 * max; current = state.current + delta / 100 * max;
} }
if (current > 100) { if (current > 100) {
current = 100; current = 100;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册