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 */
 |