Right now QEMU is importing arch/x86/include/uapi/asm/kvm_para.h because it includes definitions for kvmclock and for KVM CPUID bits. However, other definitions for KVM hypercall values and return codes are included in include/uapi/linux/kvm_para.h and they will be used by SEV-SNP. To ensure that it is possible to include both <linux/kvm_para.h> and "standard-headers/asm-x86/kvm_para.h" without conflicts, provide linux/kvm_para.h as a portable header too, and forward linux-headers/ files to those in include/standard-headers. Note that <linux/kvm_para.h> will include architecture-specific definitions as well, but "standard-headers/linux/kvm_para.h" will not because it can be used in architecture-independent files. This could easily be extended to other architectures, but right now they do not need any symbol in their specific kvm_para.h files. Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			39 lines
		
	
	
		
			975 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			975 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 | 
						|
#ifndef __LINUX_KVM_PARA_H
 | 
						|
#define __LINUX_KVM_PARA_H
 | 
						|
 | 
						|
/*
 | 
						|
 * This header file provides a method for making a hypercall to the host
 | 
						|
 * Architectures should define:
 | 
						|
 * - kvm_hypercall0, kvm_hypercall1...
 | 
						|
 * - kvm_arch_para_features
 | 
						|
 * - kvm_para_available
 | 
						|
 */
 | 
						|
 | 
						|
/* Return values for hypercalls */
 | 
						|
#define KVM_ENOSYS		1000
 | 
						|
#define KVM_EFAULT		EFAULT
 | 
						|
#define KVM_EINVAL		EINVAL
 | 
						|
#define KVM_E2BIG		E2BIG
 | 
						|
#define KVM_EPERM		EPERM
 | 
						|
#define KVM_EOPNOTSUPP		95
 | 
						|
 | 
						|
#define KVM_HC_VAPIC_POLL_IRQ		1
 | 
						|
#define KVM_HC_MMU_OP			2
 | 
						|
#define KVM_HC_FEATURES			3
 | 
						|
#define KVM_HC_PPC_MAP_MAGIC_PAGE	4
 | 
						|
#define KVM_HC_KICK_CPU			5
 | 
						|
#define KVM_HC_MIPS_GET_CLOCK_FREQ	6
 | 
						|
#define KVM_HC_MIPS_EXIT_VM		7
 | 
						|
#define KVM_HC_MIPS_CONSOLE_OUTPUT	8
 | 
						|
#define KVM_HC_CLOCK_PAIRING		9
 | 
						|
#define KVM_HC_SEND_IPI		10
 | 
						|
#define KVM_HC_SCHED_YIELD		11
 | 
						|
#define KVM_HC_MAP_GPA_RANGE		12
 | 
						|
 | 
						|
/*
 | 
						|
 * hypercalls use architecture specific
 | 
						|
 */
 | 
						|
 | 
						|
#endif /* __LINUX_KVM_PARA_H */
 |