35 lines
		
	
	
		
			878 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			878 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef __KVM_X86_SGX_H
 | |
| #define __KVM_X86_SGX_H
 | |
| 
 | |
| #include <linux/kvm_host.h>
 | |
| 
 | |
| #include "capabilities.h"
 | |
| #include "vmx_ops.h"
 | |
| 
 | |
| #ifdef CONFIG_X86_SGX_KVM
 | |
| extern bool __read_mostly enable_sgx;
 | |
| 
 | |
| int handle_encls(struct kvm_vcpu *vcpu);
 | |
| 
 | |
| void setup_default_sgx_lepubkeyhash(void);
 | |
| void vcpu_setup_sgx_lepubkeyhash(struct kvm_vcpu *vcpu);
 | |
| 
 | |
| void vmx_write_encls_bitmap(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12);
 | |
| #else
 | |
| #define enable_sgx 0
 | |
| 
 | |
| static inline void setup_default_sgx_lepubkeyhash(void) { }
 | |
| static inline void vcpu_setup_sgx_lepubkeyhash(struct kvm_vcpu *vcpu) { }
 | |
| 
 | |
| static inline void vmx_write_encls_bitmap(struct kvm_vcpu *vcpu,
 | |
| 					  struct vmcs12 *vmcs12)
 | |
| {
 | |
| 	/* Nothing to do if hardware doesn't support SGX */
 | |
| 	if (cpu_has_vmx_encls_vmexit())
 | |
| 		vmcs_write64(ENCLS_EXITING_BITMAP, -1ull);
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* __KVM_X86_SGX_H */
 |