target-s390x: add a tod2time function
Add a tod2time function similar to the time2tod one, instead of open coding the conversion. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
a91a1b20a2
commit
9cb32c442e
@ -995,6 +995,11 @@ static inline uint64_t time2tod(uint64_t ns) {
|
|||||||
return (ns << 9) / 125;
|
return (ns << 9) / 125;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Converts s390's clock format to ns */
|
||||||
|
static inline uint64_t tod2time(uint64_t t) {
|
||||||
|
return (t * 125) >> 9;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void cpu_inject_ext(S390CPU *cpu, uint32_t code, uint32_t param,
|
static inline void cpu_inject_ext(S390CPU *cpu, uint32_t code, uint32_t param,
|
||||||
uint64_t param64)
|
uint64_t param64)
|
||||||
{
|
{
|
||||||
|
@ -294,7 +294,7 @@ void HELPER(sckc)(CPUS390XState *env, uint64_t time)
|
|||||||
/* difference between now and then */
|
/* difference between now and then */
|
||||||
time -= clock_value(env);
|
time -= clock_value(env);
|
||||||
/* nanoseconds */
|
/* nanoseconds */
|
||||||
time = (time * 125) >> 9;
|
time = tod2time(time);
|
||||||
|
|
||||||
timer_mod(env->tod_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + time);
|
timer_mod(env->tod_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + time);
|
||||||
}
|
}
|
||||||
@ -314,7 +314,7 @@ void HELPER(spt)(CPUS390XState *env, uint64_t time)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* nanoseconds */
|
/* nanoseconds */
|
||||||
time = (time * 125) >> 9;
|
time = tod2time(time);
|
||||||
|
|
||||||
timer_mod(env->cpu_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + time);
|
timer_mod(env->cpu_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + time);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user