Add documentation for qemu_progress_{init,print}()

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Jes Sorensen 2011-05-09 17:32:20 +02:00 committed by Kevin Wolf
parent 2860e3eb96
commit 3bfe4dbf92
2 changed files with 22 additions and 4 deletions

View File

@ -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

View File

@ -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)
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;