 25c7bfaef2
			
		
	
	
	25c7bfaef2
	
	
	
		
			
			Create include/asm-ia64/pvclock-abi.h to compile which contains the same definitions of include/asm-x86/pvclock-abi.h because ia64/xen uses same structure. Hopefully include/asm-x86/pvclock-abi.h would be moved to somewhere more generic. Another approach is to include include/asm-x86/pvclock-abi.h from include/asm-ia64/pvclock-abi.h. But this would break if/when x86 header files are moved under arch/x86. So for now, same definitions are duplicated as suggested by Tony. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Tony Luck <tony.luck@intel.com>
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * same structure to x86's
 | |
|  * Hopefully asm-x86/pvclock-abi.h would be moved to somewhere more generic.
 | |
|  * For now, define same duplicated definitions.
 | |
|  */
 | |
| 
 | |
| #ifndef _ASM_IA64__PVCLOCK_ABI_H
 | |
| #define _ASM_IA64__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    pad[3];
 | |
| } __attribute__((__packed__)); /* 32 bytes */
 | |
| 
 | |
| struct pvclock_wall_clock {
 | |
| 	u32   version;
 | |
| 	u32   sec;
 | |
| 	u32   nsec;
 | |
| } __attribute__((__packed__));
 | |
| 
 | |
| #endif /* __ASSEMBLY__ */
 | |
| #endif /* _ASM_IA64__PVCLOCK_ABI_H */
 |