Revision 74475455 hw/rtl8139.c
b/hw/rtl8139.c | ||
---|---|---|
2517 | 2517 |
|
2518 | 2518 |
s->IntrMask = val; |
2519 | 2519 |
|
2520 |
rtl8139_set_next_tctr_time(s, qemu_get_clock(vm_clock)); |
|
2520 |
rtl8139_set_next_tctr_time(s, qemu_get_clock_ns(vm_clock));
|
|
2521 | 2521 |
rtl8139_update_irq(s); |
2522 | 2522 |
|
2523 | 2523 |
} |
... | ... | |
2558 | 2558 |
* and probably emulated is slower is better to assume this resetting was |
2559 | 2559 |
* done before testing on previous rtl8139_update_irq lead to IRQ loosing |
2560 | 2560 |
*/ |
2561 |
rtl8139_set_next_tctr_time(s, qemu_get_clock(vm_clock)); |
|
2561 |
rtl8139_set_next_tctr_time(s, qemu_get_clock_ns(vm_clock));
|
|
2562 | 2562 |
rtl8139_update_irq(s); |
2563 | 2563 |
|
2564 | 2564 |
#endif |
... | ... | |
2566 | 2566 |
|
2567 | 2567 |
static uint32_t rtl8139_IntrStatus_read(RTL8139State *s) |
2568 | 2568 |
{ |
2569 |
rtl8139_set_next_tctr_time(s, qemu_get_clock(vm_clock)); |
|
2569 |
rtl8139_set_next_tctr_time(s, qemu_get_clock_ns(vm_clock));
|
|
2570 | 2570 |
|
2571 | 2571 |
uint32_t ret = s->IntrStatus; |
2572 | 2572 |
|
... | ... | |
2831 | 2831 |
|
2832 | 2832 |
case Timer: |
2833 | 2833 |
DEBUG_PRINT(("RTL8139: TCTR Timer reset on write\n")); |
2834 |
s->TCTR_base = qemu_get_clock(vm_clock); |
|
2834 |
s->TCTR_base = qemu_get_clock_ns(vm_clock);
|
|
2835 | 2835 |
rtl8139_set_next_tctr_time(s, s->TCTR_base); |
2836 | 2836 |
break; |
2837 | 2837 |
|
... | ... | |
2839 | 2839 |
DEBUG_PRINT(("RTL8139: FlashReg TimerInt write val=0x%08x\n", val)); |
2840 | 2840 |
if (s->TimerInt != val) { |
2841 | 2841 |
s->TimerInt = val; |
2842 |
rtl8139_set_next_tctr_time(s, qemu_get_clock(vm_clock)); |
|
2842 |
rtl8139_set_next_tctr_time(s, qemu_get_clock_ns(vm_clock));
|
|
2843 | 2843 |
} |
2844 | 2844 |
break; |
2845 | 2845 |
|
... | ... | |
3050 | 3050 |
break; |
3051 | 3051 |
|
3052 | 3052 |
case Timer: |
3053 |
ret = muldiv64(qemu_get_clock(vm_clock) - s->TCTR_base, |
|
3053 |
ret = muldiv64(qemu_get_clock_ns(vm_clock) - s->TCTR_base,
|
|
3054 | 3054 |
PCI_FREQUENCY, get_ticks_per_sec()); |
3055 | 3055 |
DEBUG_PRINT(("RTL8139: TCTR Timer read val=0x%08x\n", ret)); |
3056 | 3056 |
break; |
... | ... | |
3144 | 3144 |
static int rtl8139_post_load(void *opaque, int version_id) |
3145 | 3145 |
{ |
3146 | 3146 |
RTL8139State* s = opaque; |
3147 |
rtl8139_set_next_tctr_time(s, qemu_get_clock(vm_clock)); |
|
3147 |
rtl8139_set_next_tctr_time(s, qemu_get_clock_ns(vm_clock));
|
|
3148 | 3148 |
if (version_id < 4) { |
3149 | 3149 |
s->cplus_enabled = s->CpCmd != 0; |
3150 | 3150 |
} |
... | ... | |
3170 | 3170 |
static void rtl8139_pre_save(void *opaque) |
3171 | 3171 |
{ |
3172 | 3172 |
RTL8139State* s = opaque; |
3173 |
int64_t current_time = qemu_get_clock(vm_clock); |
|
3173 |
int64_t current_time = qemu_get_clock_ns(vm_clock);
|
|
3174 | 3174 |
|
3175 | 3175 |
/* set IntrStatus correctly */ |
3176 | 3176 |
rtl8139_set_next_tctr_time(s, current_time); |
... | ... | |
3319 | 3319 |
|
3320 | 3320 |
s->IntrStatus |= PCSTimeout; |
3321 | 3321 |
rtl8139_update_irq(s); |
3322 |
rtl8139_set_next_tctr_time(s, qemu_get_clock(vm_clock)); |
|
3322 |
rtl8139_set_next_tctr_time(s, qemu_get_clock_ns(vm_clock));
|
|
3323 | 3323 |
} |
3324 | 3324 |
|
3325 | 3325 |
static void rtl8139_cleanup(VLANClientState *nc) |
... | ... | |
3400 | 3400 |
s->cplus_txbuffer_offset = 0; |
3401 | 3401 |
|
3402 | 3402 |
s->TimerExpire = 0; |
3403 |
s->timer = qemu_new_timer(vm_clock, rtl8139_timer, s); |
|
3404 |
rtl8139_set_next_tctr_time(s, qemu_get_clock(vm_clock)); |
|
3403 |
s->timer = qemu_new_timer_ns(vm_clock, rtl8139_timer, s);
|
|
3404 |
rtl8139_set_next_tctr_time(s, qemu_get_clock_ns(vm_clock));
|
|
3405 | 3405 |
|
3406 | 3406 |
add_boot_device_path(s->conf.bootindex, &dev->qdev, "/ethernet-phy@0"); |
3407 | 3407 |
|
Also available in: Unified diff