1a9dc68d9SClaudio Fontana /* 2a9dc68d9SClaudio Fontana * Stubs for CONFIG_HYPERV=n 3a9dc68d9SClaudio Fontana * 4a9dc68d9SClaudio Fontana * Copyright (c) 2015-2018 Virtuozzo International GmbH. 5a9dc68d9SClaudio Fontana * 6a9dc68d9SClaudio Fontana * This work is licensed under the terms of the GNU GPL, version 2 or later. 7a9dc68d9SClaudio Fontana * See the COPYING file in the top-level directory. 8a9dc68d9SClaudio Fontana */ 9a9dc68d9SClaudio Fontana 10a9dc68d9SClaudio Fontana #include "qemu/osdep.h" 11a9dc68d9SClaudio Fontana #include "hyperv.h" 12a9dc68d9SClaudio Fontana 13a9dc68d9SClaudio Fontana #ifdef CONFIG_KVM kvm_hv_handle_exit(X86CPU * cpu,struct kvm_hyperv_exit * exit)14a9dc68d9SClaudio Fontanaint kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit) 15a9dc68d9SClaudio Fontana { 16a9dc68d9SClaudio Fontana switch (exit->type) { 17a9dc68d9SClaudio Fontana case KVM_EXIT_HYPERV_SYNIC: 18a9dc68d9SClaudio Fontana if (!hyperv_feat_enabled(cpu, HYPERV_FEAT_SYNIC)) { 19a9dc68d9SClaudio Fontana return -1; 20a9dc68d9SClaudio Fontana } 21a9dc68d9SClaudio Fontana 22a9dc68d9SClaudio Fontana /* 23a9dc68d9SClaudio Fontana * Tracking the changes in the MSRs is unnecessary as there are no 24a9dc68d9SClaudio Fontana * users for them beside save/load, which is handled nicely by the 25a9dc68d9SClaudio Fontana * generic MSR save/load code 26a9dc68d9SClaudio Fontana */ 27a9dc68d9SClaudio Fontana return 0; 28a9dc68d9SClaudio Fontana case KVM_EXIT_HYPERV_HCALL: 29a9dc68d9SClaudio Fontana exit->u.hcall.result = HV_STATUS_INVALID_HYPERCALL_CODE; 30a9dc68d9SClaudio Fontana return 0; 3173d24074SJon Doron case KVM_EXIT_HYPERV_SYNDBG: 3273d24074SJon Doron if (!hyperv_feat_enabled(cpu, HYPERV_FEAT_SYNDBG)) { 3373d24074SJon Doron return -1; 3473d24074SJon Doron } 3573d24074SJon Doron 3673d24074SJon Doron return 0; 37a9dc68d9SClaudio Fontana default: 38a9dc68d9SClaudio Fontana return -1; 39a9dc68d9SClaudio Fontana } 40a9dc68d9SClaudio Fontana } 41a9dc68d9SClaudio Fontana #endif 42a9dc68d9SClaudio Fontana hyperv_x86_synic_add(X86CPU * cpu)43a9dc68d9SClaudio Fontanaint hyperv_x86_synic_add(X86CPU *cpu) 44a9dc68d9SClaudio Fontana { 45a9dc68d9SClaudio Fontana return -ENOSYS; 46a9dc68d9SClaudio Fontana } 47a9dc68d9SClaudio Fontana hyperv_x86_synic_reset(X86CPU * cpu)48a9dc68d9SClaudio Fontanavoid hyperv_x86_synic_reset(X86CPU *cpu) 49a9dc68d9SClaudio Fontana { 50a9dc68d9SClaudio Fontana } 51a9dc68d9SClaudio Fontana hyperv_x86_synic_update(X86CPU * cpu)52a9dc68d9SClaudio Fontanavoid hyperv_x86_synic_update(X86CPU *cpu) 53a9dc68d9SClaudio Fontana { 54a9dc68d9SClaudio Fontana } 556093637bSMaciej S. Szmigiero hyperv_x86_set_vmbus_recommended_features_enabled(void)566093637bSMaciej S. Szmigierovoid hyperv_x86_set_vmbus_recommended_features_enabled(void) 576093637bSMaciej S. Szmigiero { 586093637bSMaciej S. Szmigiero } 59*6607b77bSPaolo Bonzini hyperv_syndbg_query_options(void)60*6607b77bSPaolo Bonziniuint64_t hyperv_syndbg_query_options(void) 61*6607b77bSPaolo Bonzini { 62*6607b77bSPaolo Bonzini return 0; 63*6607b77bSPaolo Bonzini } 64