On Fri, Jun 16, 2017 at 01:19:02PM +0200, Mike Belopuhov wrote:
> On Fri, Jun 16, 2017 at 10:25 +0200, Mike Belopuhov wrote:
> > I don't know if it's a good idea to depend on Xen's
> > definition of vcpu_time_info.  I think I have factored
> > it out into the pvclock_time_info and put it into the
> > pvclockvar.h or something like that.  And then made Xen
> > use those definitions instead of its own.  Dunno what's
> > the best course of action here.
> > 
> 
> This is what I would like to use.  I've stripped the API
> part, but we can add it as well.  I don't believe this
> file requires a specific license since there's a handful
> of pvclock header files out there implementing a common
> interface so a person committing such a file can add his
> own copyright.  Opinions?

Looks good to me.  Can we put the #defines for flag bits in there too?

#define PVCLOCK_FLAG_TSC_STABLE_BIT             (1 << 0)
#define PVCLOCK_FLAG_GUEST_STOPPED              (1 << 1)

As far as I can tell, xen doesn't use these, but Linux handles them in its
common pvclock code anyway.

> 
> 
> #ifndef _PV_PVCLOCK_H_
> #define _PV_PVCLOCK_H_
> 
> struct pvclock_vcpu_time_info {
>       volatile uint32_t       version;
>       volatile uint32_t       pad1;
>       volatile uint64_t       tsc_timestamp;
>       volatile uint64_t       system_time;
>       volatile uint32_t       tsc_to_system_mul;
>       volatile int8_t         tsc_shift;
>       volatile uint8_t        flags;
>       volatile uint8_t        pad2[2];
> } __packed;
> 
> struct pvclock_wall_clock {
>       volatile uint32_t       version;
>       volatile uint32_t       sec;
>       volatile uint32_t       nsec;
> } __packed;
> 
> #endif        /* _PV_PVCLOCK_H_ */

Reply via email to