[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 3/7] plat/xen: Implement ukplat_wall_clock() for x86
Signed-off-by: Florian Schmidt <florian.schmidt@xxxxxxxxx> --- plat/xen/x86/arch_time.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/plat/xen/x86/arch_time.c b/plat/xen/x86/arch_time.c index a4b77b93..d36f9632 100644 --- a/plat/xen/x86/arch_time.c +++ b/plat/xen/x86/arch_time.c @@ -58,9 +58,8 @@ struct shadow_time_info { uint32_t version; }; -#if 0 /* TODO */ static struct timespec shadow_ts; -#endif + static uint32_t shadow_ts_version; static struct shadow_time_info shadow; @@ -184,8 +183,6 @@ __nsec ukplat_monotonic_clock(void) return time; } -#if 0 /* TODO */ - static void update_wallclock(void) { shared_info_t *s = HYPERVISOR_shared_info; @@ -198,7 +195,19 @@ static void update_wallclock(void) rmb(); } while ((s->wc_version & 1) | (shadow_ts_version ^ s->wc_version)); } -#endif + +__nsec ukplat_wall_clock(void) +{ + __nsec ret = ukplat_monotonic_clock(); + + if (!wc_values_up_to_date()) + update_wallclock(); + + ret += ukarch_time_sec_to_nsec((__nsec) shadow_ts.tv_sec); + ret += (__nsec) shadow_ts.tv_nsec; + + return ret; +} #if 0 /* TODO */ int gettimeofday(struct timeval *tv, void *tz) -- 2.20.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |