 eae3ee7d8a
			
		
	
	
	eae3ee7d8a
	
	
	
		
			
			This flag will be used to check if the vm was stopped by the host when a soft lockup was detected. The host will set the flag when it stops the guest. On resume, the guest will check this flag if a soft lockup is detected and skip issuing the warning. Signed-off-by: Eric B Munson <emunson@mgebm.net> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ASM_X86_PVCLOCK_ABI_H
 | |
| #define _ASM_X86_PVCLOCK_ABI_H
 | |
| #ifndef __ASSEMBLY__
 | |
| 
 | |
| /*
 | |
|  * These structs MUST NOT be changed.
 | |
|  * They are the ABI between hypervisor and guest OS.
 | |
|  * Both Xen and KVM are using this.
 | |
|  *
 | |
|  * pvclock_vcpu_time_info holds the system time and the tsc timestamp
 | |
|  * of the last update. So the guest can use the tsc delta to get a
 | |
|  * more precise system time.  There is one per virtual cpu.
 | |
|  *
 | |
|  * pvclock_wall_clock references the point in time when the system
 | |
|  * time was zero (usually boot time), thus the guest calculates the
 | |
|  * current wall clock by adding the system time.
 | |
|  *
 | |
|  * Protocol for the "version" fields is: hypervisor raises it (making
 | |
|  * it uneven) before it starts updating the fields and raises it again
 | |
|  * (making it even) when it is done.  Thus the guest can make sure the
 | |
|  * time values it got are consistent by checking the version before
 | |
|  * and after reading them.
 | |
|  */
 | |
| 
 | |
| struct pvclock_vcpu_time_info {
 | |
| 	u32   version;
 | |
| 	u32   pad0;
 | |
| 	u64   tsc_timestamp;
 | |
| 	u64   system_time;
 | |
| 	u32   tsc_to_system_mul;
 | |
| 	s8    tsc_shift;
 | |
| 	u8    flags;
 | |
| 	u8    pad[2];
 | |
| } __attribute__((__packed__)); /* 32 bytes */
 | |
| 
 | |
| struct pvclock_wall_clock {
 | |
| 	u32   version;
 | |
| 	u32   sec;
 | |
| 	u32   nsec;
 | |
| } __attribute__((__packed__));
 | |
| 
 | |
| #define PVCLOCK_TSC_STABLE_BIT	(1 << 0)
 | |
| #define PVCLOCK_GUEST_STOPPED	(1 << 1)
 | |
| #endif /* __ASSEMBLY__ */
 | |
| #endif /* _ASM_X86_PVCLOCK_ABI_H */
 |