xref: /qemu/target/i386/kvm/hyperv-stub.c (revision 606c34bfd57a0ecda67b395bea022bb307a5384e)
18417442aSRoman Kagan /*
28417442aSRoman Kagan  * Stubs for CONFIG_HYPERV=n
38417442aSRoman Kagan  *
48417442aSRoman Kagan  * Copyright (c) 2015-2018 Virtuozzo International GmbH.
58417442aSRoman Kagan  *
68417442aSRoman Kagan  * This work is licensed under the terms of the GNU GPL, version 2 or later.
78417442aSRoman Kagan  * See the COPYING file in the top-level directory.
88417442aSRoman Kagan  */
98417442aSRoman Kagan 
108417442aSRoman Kagan #include "qemu/osdep.h"
118417442aSRoman Kagan #include "hyperv.h"
128417442aSRoman Kagan 
138417442aSRoman Kagan #ifdef CONFIG_KVM
148417442aSRoman Kagan int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit)
158417442aSRoman Kagan {
168417442aSRoman Kagan     switch (exit->type) {
178417442aSRoman Kagan     case KVM_EXIT_HYPERV_SYNIC:
188417442aSRoman Kagan         if (!cpu->hyperv_synic) {
198417442aSRoman Kagan             return -1;
208417442aSRoman Kagan         }
218417442aSRoman Kagan 
228417442aSRoman Kagan         /*
238417442aSRoman Kagan          * Tracking the changes in the MSRs is unnecessary as there are no
248417442aSRoman Kagan          * users for them beside save/load, which is handled nicely by the
258417442aSRoman Kagan          * generic MSR save/load code
268417442aSRoman Kagan          */
278417442aSRoman Kagan         return 0;
288417442aSRoman Kagan     case KVM_EXIT_HYPERV_HCALL:
298417442aSRoman Kagan         exit->u.hcall.result = HV_STATUS_INVALID_HYPERCALL_CODE;
308417442aSRoman Kagan         return 0;
318417442aSRoman Kagan     default:
328417442aSRoman Kagan         return -1;
338417442aSRoman Kagan     }
348417442aSRoman Kagan }
358417442aSRoman Kagan #endif
36606c34bfSRoman Kagan 
37606c34bfSRoman Kagan int hyperv_x86_synic_add(X86CPU *cpu)
38606c34bfSRoman Kagan {
39606c34bfSRoman Kagan     return -ENOSYS;
40606c34bfSRoman Kagan }
41606c34bfSRoman Kagan 
42606c34bfSRoman Kagan void hyperv_x86_synic_reset(X86CPU *cpu)
43606c34bfSRoman Kagan {
44606c34bfSRoman Kagan }
45606c34bfSRoman Kagan 
46606c34bfSRoman Kagan void hyperv_x86_synic_update(X86CPU *cpu)
47606c34bfSRoman Kagan {
48606c34bfSRoman Kagan }
49