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