sgx.h (878B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __KVM_X86_SGX_H 3#define __KVM_X86_SGX_H 4 5#include <linux/kvm_host.h> 6 7#include "capabilities.h" 8#include "vmx_ops.h" 9 10#ifdef CONFIG_X86_SGX_KVM 11extern bool __read_mostly enable_sgx; 12 13int handle_encls(struct kvm_vcpu *vcpu); 14 15void setup_default_sgx_lepubkeyhash(void); 16void vcpu_setup_sgx_lepubkeyhash(struct kvm_vcpu *vcpu); 17 18void vmx_write_encls_bitmap(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12); 19#else 20#define enable_sgx 0 21 22static inline void setup_default_sgx_lepubkeyhash(void) { } 23static inline void vcpu_setup_sgx_lepubkeyhash(struct kvm_vcpu *vcpu) { } 24 25static inline void vmx_write_encls_bitmap(struct kvm_vcpu *vcpu, 26 struct vmcs12 *vmcs12) 27{ 28 /* Nothing to do if hardware doesn't support SGX */ 29 if (cpu_has_vmx_encls_vmexit()) 30 vmcs_write64(ENCLS_EXITING_BITMAP, -1ull); 31} 32#endif 33 34#endif /* __KVM_X86_SGX_H */