提交 9cb32c44 编写于 作者: A Aurelien Jarno 提交者: Alexander Graf

target-s390x: add a tod2time function

Add a tod2time function similar to the time2tod one, instead of open
coding the conversion.
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
Signed-off-by: NAlexander Graf <agraf@suse.de>
上级 a91a1b20
...@@ -995,6 +995,11 @@ static inline uint64_t time2tod(uint64_t ns) { ...@@ -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) ...@@ -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) ...@@ -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);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册