diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-07-21 19:34:47 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-07-21 19:34:47 +0200 |
commit | a2952398e5de8746a761a59686619d08d376bce3 (patch) | |
tree | df2373bb1119468873c667624769455c36dc3786 /xen/time.c | |
parent | ba1b3afd50913473f3036a63b4a82d7ba5c42009 (diff) | |
parent | 92e98a7f4d4fa75b286a067e1d1caef514fccb0d (diff) |
Merge branch 'master' into master-gdb_stubs
Diffstat (limited to 'xen/time.c')
-rw-r--r-- | xen/time.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -34,6 +34,7 @@ static unsigned64_t lastnsec; static unsigned64_t hyp_get_stime(void) { unsigned32_t version; unsigned64_t cpu_clock, last_cpu_clock, delta, system_time; + unsigned64_t delta_high, delta_low; unsigned32_t mul; signed8_t shift; volatile struct vcpu_time_info *time = &hyp_shared_info.vcpu_info[0].time; @@ -54,7 +55,10 @@ static unsigned64_t hyp_get_stime(void) { delta >>= -shift; else delta <<= shift; - return system_time + ((delta * (unsigned64_t) mul) >> 32); + delta_high = delta >> 32; + delta_low = (unsigned32_t) delta; + return system_time + ((delta_low * (unsigned64_t) mul) >> 32) + + (delta_high * (unsigned64_t) mul); } unsigned64_t hyp_get_time(void) { @@ -107,7 +111,6 @@ static void hypclock_intr(int unit, int old_ipl, void *ret_addr, struct i386_int } extern struct timeval time; -extern struct timezone tz; int readtodc(tp) |