Revision 41c872b6
b/qemu-timer.h | ||
---|---|---|
25 | 25 |
extern QEMUClock *host_clock; |
26 | 26 |
|
27 | 27 |
int64_t qemu_get_clock(QEMUClock *clock); |
28 |
int64_t qemu_get_clock_ns(QEMUClock *clock); |
|
28 | 29 |
|
29 | 30 |
QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque); |
30 | 31 |
void qemu_free_timer(QEMUTimer *ts); |
b/vl.c | ||
---|---|---|
931 | 931 |
} |
932 | 932 |
} |
933 | 933 |
|
934 |
int64_t qemu_get_clock_ns(QEMUClock *clock) |
|
935 |
{ |
|
936 |
switch(clock->type) { |
|
937 |
case QEMU_CLOCK_REALTIME: |
|
938 |
return get_clock(); |
|
939 |
default: |
|
940 |
case QEMU_CLOCK_VIRTUAL: |
|
941 |
if (use_icount) { |
|
942 |
return cpu_get_icount(); |
|
943 |
} else { |
|
944 |
return cpu_get_clock(); |
|
945 |
} |
|
946 |
case QEMU_CLOCK_HOST: |
|
947 |
return get_clock_realtime(); |
|
948 |
} |
|
949 |
} |
|
950 |
|
|
934 | 951 |
static void init_clocks(void) |
935 | 952 |
{ |
936 | 953 |
init_get_clock(); |
... | ... | |
2866 | 2883 |
} |
2867 | 2884 |
|
2868 | 2885 |
bytes_transferred_last = bytes_transferred; |
2869 |
bwidth = get_clock();
|
|
2886 |
bwidth = qemu_get_clock_ns(rt_clock);
|
|
2870 | 2887 |
|
2871 | 2888 |
while (!qemu_file_rate_limit(f)) { |
2872 | 2889 |
int ret; |
... | ... | |
2877 | 2894 |
break; |
2878 | 2895 |
} |
2879 | 2896 |
|
2880 |
bwidth = get_clock() - bwidth;
|
|
2897 |
bwidth = qemu_get_clock_ns(rt_clock) - bwidth;
|
|
2881 | 2898 |
bwidth = (bytes_transferred - bytes_transferred_last) / bwidth; |
2882 | 2899 |
|
2883 | 2900 |
/* if we haven't transferred anything this round, force expected_time to a |
Also available in: Unified diff