Commit 2697902b authored by Marcelo Tosatti's avatar Marcelo Tosatti

x86: pvclock: introduce helper to read flags

Acked-by: default avatarGlauber Costa <glommer@parallels.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent dce2db0a
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
/* some helper functions for xen and kvm pv clock sources */ /* some helper functions for xen and kvm pv clock sources */
cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src); cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src);
u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src);
void pvclock_set_flags(u8 flags); void pvclock_set_flags(u8 flags);
unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src); unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src);
void pvclock_read_wallclock(struct pvclock_wall_clock *wall, void pvclock_read_wallclock(struct pvclock_wall_clock *wall,
......
...@@ -45,6 +45,19 @@ void pvclock_resume(void) ...@@ -45,6 +45,19 @@ void pvclock_resume(void)
atomic64_set(&last_value, 0); atomic64_set(&last_value, 0);
} }
u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src)
{
unsigned version;
cycle_t ret;
u8 flags;
do {
version = __pvclock_read_cycles(src, &ret, &flags);
} while ((src->version & 1) || version != src->version);
return flags & valid_flags;
}
cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src) cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
{ {
unsigned version; unsigned version;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment