Revision 6ee093c9 hw/ppc.c
b/hw/ppc.c | ||
---|---|---|
397 | 397 |
int64_t tb_offset) |
398 | 398 |
{ |
399 | 399 |
/* TB time in tb periods */ |
400 |
return muldiv64(vmclk, tb_env->tb_freq, ticks_per_sec) + tb_offset;
|
|
400 |
return muldiv64(vmclk, tb_env->tb_freq, get_ticks_per_sec()) + tb_offset;
|
|
401 | 401 |
} |
402 | 402 |
|
403 | 403 |
uint32_t cpu_ppc_load_tbl (CPUState *env) |
... | ... | |
430 | 430 |
static inline void cpu_ppc_store_tb(ppc_tb_t *tb_env, uint64_t vmclk, |
431 | 431 |
int64_t *tb_offsetp, uint64_t value) |
432 | 432 |
{ |
433 |
*tb_offsetp = value - muldiv64(vmclk, tb_env->tb_freq, ticks_per_sec);
|
|
433 |
*tb_offsetp = value - muldiv64(vmclk, tb_env->tb_freq, get_ticks_per_sec());
|
|
434 | 434 |
LOG_TB("%s: tb %016" PRIx64 " offset %08" PRIx64 "\n", |
435 | 435 |
__func__, value, *tb_offsetp); |
436 | 436 |
} |
... | ... | |
557 | 557 |
|
558 | 558 |
diff = next - qemu_get_clock(vm_clock); |
559 | 559 |
if (diff >= 0) |
560 |
decr = muldiv64(diff, tb_env->decr_freq, ticks_per_sec);
|
|
560 |
decr = muldiv64(diff, tb_env->decr_freq, get_ticks_per_sec());
|
|
561 | 561 |
else |
562 |
decr = -muldiv64(-diff, tb_env->decr_freq, ticks_per_sec);
|
|
562 |
decr = -muldiv64(-diff, tb_env->decr_freq, get_ticks_per_sec());
|
|
563 | 563 |
LOG_TB("%s: %08" PRIx32 "\n", __func__, decr); |
564 | 564 |
|
565 | 565 |
return decr; |
... | ... | |
586 | 586 |
|
587 | 587 |
diff = qemu_get_clock(vm_clock) - tb_env->purr_start; |
588 | 588 |
|
589 |
return tb_env->purr_load + muldiv64(diff, tb_env->tb_freq, ticks_per_sec);
|
|
589 |
return tb_env->purr_load + muldiv64(diff, tb_env->tb_freq, get_ticks_per_sec());
|
|
590 | 590 |
} |
591 | 591 |
|
592 | 592 |
/* When decrementer expires, |
... | ... | |
618 | 618 |
LOG_TB("%s: %08" PRIx32 " => %08" PRIx32 "\n", __func__, |
619 | 619 |
decr, value); |
620 | 620 |
now = qemu_get_clock(vm_clock); |
621 |
next = now + muldiv64(value, ticks_per_sec, tb_env->decr_freq);
|
|
621 |
next = now + muldiv64(value, get_ticks_per_sec(), tb_env->decr_freq);
|
|
622 | 622 |
if (is_excp) |
623 | 623 |
next += *nextp - now; |
624 | 624 |
if (next == now) |
... | ... | |
788 | 788 |
/* Cannot occur, but makes gcc happy */ |
789 | 789 |
return; |
790 | 790 |
} |
791 |
next = now + muldiv64(next, ticks_per_sec, tb_env->tb_freq);
|
|
791 |
next = now + muldiv64(next, get_ticks_per_sec(), tb_env->tb_freq);
|
|
792 | 792 |
if (next == now) |
793 | 793 |
next++; |
794 | 794 |
qemu_mod_timer(ppcemb_timer->fit_timer, next); |
... | ... | |
818 | 818 |
__func__, ppcemb_timer->pit_reload); |
819 | 819 |
now = qemu_get_clock(vm_clock); |
820 | 820 |
next = now + muldiv64(ppcemb_timer->pit_reload, |
821 |
ticks_per_sec, tb_env->decr_freq);
|
|
821 |
get_ticks_per_sec(), tb_env->decr_freq);
|
|
822 | 822 |
if (is_excp) |
823 | 823 |
next += tb_env->decr_next - now; |
824 | 824 |
if (next == now) |
... | ... | |
878 | 878 |
/* Cannot occur, but makes gcc happy */ |
879 | 879 |
return; |
880 | 880 |
} |
881 |
next = now + muldiv64(next, ticks_per_sec, tb_env->decr_freq);
|
|
881 |
next = now + muldiv64(next, get_ticks_per_sec(), tb_env->decr_freq);
|
|
882 | 882 |
if (next == now) |
883 | 883 |
next++; |
884 | 884 |
LOG_TB("%s: TCR " TARGET_FMT_lx " TSR " TARGET_FMT_lx "\n", __func__, |
Also available in: Unified diff