summaryrefslogtreecommitdiffstats
path: root/target/s390x/internal.h
diff options
context:
space:
mode:
authorDavid Hildenbrand2018-06-27 15:44:06 +0200
committerCornelia Huck2018-07-02 10:37:38 +0200
commit7de3b1cdc67dcb572c1761c2051252e91a438b22 (patch)
tree0c3045416a75bd11ecc4eac3c2743bea454b1cb1 /target/s390x/internal.h
parents390x/tcg: drop tod_basetime (diff)
downloadqemu-7de3b1cdc67dcb572c1761c2051252e91a438b22.tar.gz
qemu-7de3b1cdc67dcb572c1761c2051252e91a438b22.tar.xz
qemu-7de3b1cdc67dcb572c1761c2051252e91a438b22.zip
s390x/tcg: properly implement the TOD
Right now, each CPU has its own TOD. Especially, the TOD will differ based on creation time of a CPU - e.g. when hotplugging a CPU the times will differ quite a lot, resulting in stall warnings in the guest. Let's use a single TOD by implementing our new TOD device. Prepare it for TOD-clock epoch extension. Most importantly, whenever we set the TOD, we have to update the CKC timer. Introduce "tcg_s390x.h" just like "kvm_s390x.h" for tcg specific function declarations that should not go into cpu.h. Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20180627134410.4901-6-david@redhat.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to 'target/s390x/internal.h')
-rw-r--r--target/s390x/internal.h16
1 files changed, 0 insertions, 16 deletions
diff --git a/target/s390x/internal.h b/target/s390x/internal.h
index 6cf63340bf..f2a771e2b4 100644
--- a/target/s390x/internal.h
+++ b/target/s390x/internal.h
@@ -237,22 +237,6 @@ enum cc_op {
CC_OP_MAX
};
-/* The value of the TOD clock for 1.1.1970. */
-#define TOD_UNIX_EPOCH 0x7d91048bca000000ULL
-
-/* Converts ns to s390's clock format */
-static inline uint64_t time2tod(uint64_t ns)
-{
- return (ns << 9) / 125 + (((ns & 0xff10000000000000ull) / 125) << 9);
-
-}
-
-/* Converts s390's clock format to ns */
-static inline uint64_t tod2time(uint64_t t)
-{
- return ((t >> 9) * 125) + (((t & 0x1ff) * 125) >> 9);
-}
-
static inline hwaddr decode_basedisp_s(CPUS390XState *env, uint32_t ipb,
uint8_t *ar)
{