1
2
3
4
5
6
7
8
9
10
11
12
13#include "qemu-common.h"
14#include "hw/hw.h"
15#include "cpu.h"
16#include "sysemu/kvm.h"
17
18#ifndef CONFIG_USER_ONLY
19#include "hw/pci/msi.h"
20#endif
21
22KVMState *kvm_state;
23bool kvm_kernel_irqchip;
24bool kvm_async_interrupts_allowed;
25bool kvm_eventfds_allowed;
26bool kvm_irqfds_allowed;
27bool kvm_msi_via_irqfd_allowed;
28bool kvm_gsi_routing_allowed;
29bool kvm_gsi_direct_mapping;
30bool kvm_allowed;
31bool kvm_readonly_mem_allowed;
32
33int kvm_init_vcpu(CPUState *cpu)
34{
35 return -ENOSYS;
36}
37
38void kvm_flush_coalesced_mmio_buffer(void)
39{
40}
41
42void kvm_cpu_synchronize_state(CPUState *cpu)
43{
44}
45
46void kvm_cpu_synchronize_post_reset(CPUState *cpu)
47{
48}
49
50void kvm_cpu_synchronize_post_init(CPUState *cpu)
51{
52}
53
54int kvm_cpu_exec(CPUState *cpu)
55{
56 abort();
57}
58
59int kvm_has_sync_mmu(void)
60{
61 return 0;
62}
63
64int kvm_has_many_ioeventfds(void)
65{
66 return 0;
67}
68
69int kvm_has_pit_state2(void)
70{
71 return 0;
72}
73
74void kvm_setup_guest_memory(void *start, size_t size)
75{
76}
77
78int kvm_update_guest_debug(CPUState *cpu, unsigned long reinject_trap)
79{
80 return -ENOSYS;
81}
82
83int kvm_insert_breakpoint(CPUState *cpu, target_ulong addr,
84 target_ulong len, int type)
85{
86 return -EINVAL;
87}
88
89int kvm_remove_breakpoint(CPUState *cpu, target_ulong addr,
90 target_ulong len, int type)
91{
92 return -EINVAL;
93}
94
95void kvm_remove_all_breakpoints(CPUState *cpu)
96{
97}
98
99#ifndef _WIN32
100int kvm_set_signal_mask(CPUState *cpu, const sigset_t *sigset)
101{
102 abort();
103}
104#endif
105
106int kvm_on_sigbus_vcpu(CPUState *cpu, int code, void *addr)
107{
108 return 1;
109}
110
111int kvm_on_sigbus(int code, void *addr)
112{
113 return 1;
114}
115
116#ifndef CONFIG_USER_ONLY
117int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg)
118{
119 return -ENOSYS;
120}
121
122void kvm_init_irq_routing(KVMState *s)
123{
124}
125
126void kvm_irqchip_release_virq(KVMState *s, int virq)
127{
128}
129
130int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg)
131{
132 return -ENOSYS;
133}
134
135int kvm_irqchip_add_adapter_route(KVMState *s, AdapterInfo *adapter)
136{
137 return -ENOSYS;
138}
139
140int kvm_irqchip_add_irqfd_notifier(KVMState *s, EventNotifier *n,
141 EventNotifier *rn, int virq)
142{
143 return -ENOSYS;
144}
145
146int kvm_irqchip_remove_irqfd_notifier(KVMState *s, EventNotifier *n, int virq)
147{
148 return -ENOSYS;
149}
150
151bool kvm_has_free_slot(MachineState *ms)
152{
153 return false;
154}
155#endif
156