1 /*
2 * QEMU KVM ARM specific function stubs
3 *
4 * Copyright Linaro Limited 2013
5 *
6 * Author: Peter Maydell <peter.maydell@linaro.org>
7 *
8 * This work is licensed under the terms of the GNU GPL, version 2 or later.
9 * See the COPYING file in the top-level directory.
10 *
11 */
12 #include "qemu/osdep.h"
13 #include "cpu.h"
14 #include "kvm_arm.h"
15
write_kvmstate_to_list(ARMCPU * cpu)16 bool write_kvmstate_to_list(ARMCPU *cpu)
17 {
18 g_assert_not_reached();
19 }
20
write_list_to_kvmstate(ARMCPU * cpu,int level)21 bool write_list_to_kvmstate(ARMCPU *cpu, int level)
22 {
23 g_assert_not_reached();
24 }
25
26 /*
27 * It's safe to call these functions without KVM support.
28 * They should either do nothing or return "not supported".
29 */
kvm_arm_aarch32_supported(void)30 bool kvm_arm_aarch32_supported(void)
31 {
32 return false;
33 }
34
kvm_arm_pmu_supported(void)35 bool kvm_arm_pmu_supported(void)
36 {
37 return false;
38 }
39
kvm_arm_sve_supported(void)40 bool kvm_arm_sve_supported(void)
41 {
42 return false;
43 }
44
kvm_arm_mte_supported(void)45 bool kvm_arm_mte_supported(void)
46 {
47 return false;
48 }
49
kvm_arm_el2_supported(void)50 bool kvm_arm_el2_supported(void)
51 {
52 return false;
53 }
54
55 /*
56 * These functions should never actually be called without KVM support.
57 */
kvm_arm_set_cpu_features_from_host(ARMCPU * cpu)58 void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu)
59 {
60 g_assert_not_reached();
61 }
62
kvm_arm_add_vcpu_properties(ARMCPU * cpu)63 void kvm_arm_add_vcpu_properties(ARMCPU *cpu)
64 {
65 g_assert_not_reached();
66 }
67
kvm_arm_get_max_vm_ipa_size(MachineState * ms,bool * fixed_ipa)68 int kvm_arm_get_max_vm_ipa_size(MachineState *ms, bool *fixed_ipa)
69 {
70 g_assert_not_reached();
71 }
72
kvm_arm_vgic_probe(void)73 int kvm_arm_vgic_probe(void)
74 {
75 g_assert_not_reached();
76 }
77
kvm_arm_pmu_set_irq(ARMCPU * cpu,int irq)78 void kvm_arm_pmu_set_irq(ARMCPU *cpu, int irq)
79 {
80 g_assert_not_reached();
81 }
82
kvm_arm_pmu_init(ARMCPU * cpu)83 void kvm_arm_pmu_init(ARMCPU *cpu)
84 {
85 g_assert_not_reached();
86 }
87
kvm_arm_pvtime_init(ARMCPU * cpu,uint64_t ipa)88 void kvm_arm_pvtime_init(ARMCPU *cpu, uint64_t ipa)
89 {
90 g_assert_not_reached();
91 }
92
kvm_arm_steal_time_finalize(ARMCPU * cpu,Error ** errp)93 void kvm_arm_steal_time_finalize(ARMCPU *cpu, Error **errp)
94 {
95 g_assert_not_reached();
96 }
97
kvm_arm_sve_get_vls(ARMCPU * cpu)98 uint32_t kvm_arm_sve_get_vls(ARMCPU *cpu)
99 {
100 g_assert_not_reached();
101 }
102
kvm_arm_enable_mte(Object * cpuobj,Error ** errp)103 void kvm_arm_enable_mte(Object *cpuobj, Error **errp)
104 {
105 g_assert_not_reached();
106 }
107
kvm_arm_reset_vcpu(ARMCPU * cpu)108 void kvm_arm_reset_vcpu(ARMCPU *cpu)
109 {
110 g_assert_not_reached();
111 }
112
arm_cpu_kvm_set_irq(void * arm_cpu,int irq,int level)113 void arm_cpu_kvm_set_irq(void *arm_cpu, int irq, int level)
114 {
115 g_assert_not_reached();
116 }
117
kvm_arm_cpu_pre_save(ARMCPU * cpu)118 void kvm_arm_cpu_pre_save(ARMCPU *cpu)
119 {
120 g_assert_not_reached();
121 }
122
kvm_arm_cpu_post_load(ARMCPU * cpu)123 bool kvm_arm_cpu_post_load(ARMCPU *cpu)
124 {
125 g_assert_not_reached();
126 }
127