Revision 29e922b6 qemu-timer.c

b/qemu-timer.c
53 53
#include <mmsystem.h>
54 54
#endif
55 55

  
56
#include "cpu-defs.h"
57 56
#include "qemu-timer.h"
58
#include "exec-all.h"
59 57

  
60 58
/* Conversion factor from emulated instructions to virtual clock ticks.  */
61
static int icount_time_shift;
59
int icount_time_shift;
62 60
/* Arbitrarily pick 1MIPS as the minimum allowable speed.  */
63 61
#define MAX_ICOUNT_SHIFT 10
64 62
/* Compensate for varying guest execution speed.  */
65
static int64_t qemu_icount_bias;
63
int64_t qemu_icount_bias;
66 64
static QEMUTimer *icount_rt_timer;
67 65
static QEMUTimer *icount_vm_timer;
68 66

  
......
138 136
}
139 137
#endif
140 138

  
141
/* Return the virtual CPU time, based on the instruction counter.  */
142
static int64_t cpu_get_icount(void)
143
{
144
    int64_t icount;
145
    CPUState *env = cpu_single_env;;
146
    icount = qemu_icount;
147
    if (env) {
148
        if (!can_do_io(env))
149
            fprintf(stderr, "Bad clock read\n");
150
        icount -= (env->icount_decr.u16.low + env->icount_extra);
151
    }
152
    return qemu_icount_bias + (icount << icount_time_shift);
153
}
154

  
155 139
/***********************************************************/
156 140
/* guest cycle counter */
157 141

  

Also available in: Unified diff