xref: /illumos-kvm-cmd/kvm-stub.c (revision 68396ea9)
1 /*
2  * QEMU KVM stub
3  *
4  * Copyright Red Hat, Inc. 2010
5  *
6  * Author: Paolo Bonzini     <pbonzini@redhat.com>
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 
13 #include "qemu-common.h"
14 #include "sysemu.h"
15 #include "hw/hw.h"
16 #include "exec-all.h"
17 #include "gdbstub.h"
18 #include "kvm.h"
19 
kvm_irqchip_in_kernel(void)20 int kvm_irqchip_in_kernel(void)
21 {
22     return 0;
23 }
24 
kvm_pit_in_kernel(void)25 int kvm_pit_in_kernel(void)
26 {
27     return 0;
28 }
29 
30 
kvm_init_vcpu(CPUState * env)31 int kvm_init_vcpu(CPUState *env)
32 {
33     return -ENOSYS;
34 }
35 
kvm_log_start(target_phys_addr_t phys_addr,ram_addr_t size)36 int kvm_log_start(target_phys_addr_t phys_addr, ram_addr_t size)
37 {
38     return -ENOSYS;
39 }
40 
kvm_log_stop(target_phys_addr_t phys_addr,ram_addr_t size)41 int kvm_log_stop(target_phys_addr_t phys_addr, ram_addr_t size)
42 {
43     return -ENOSYS;
44 }
45 
kvm_coalesce_mmio_region(target_phys_addr_t start,ram_addr_t size)46 int kvm_coalesce_mmio_region(target_phys_addr_t start, ram_addr_t size)
47 {
48     return -ENOSYS;
49 }
50 
kvm_uncoalesce_mmio_region(target_phys_addr_t start,ram_addr_t size)51 int kvm_uncoalesce_mmio_region(target_phys_addr_t start, ram_addr_t size)
52 {
53     return -ENOSYS;
54 }
55 
kvm_check_extension(KVMState * s,unsigned int extension)56 int kvm_check_extension(KVMState *s, unsigned int extension)
57 {
58     return 0;
59 }
60 
kvm_init(void)61 int kvm_init(void)
62 {
63     return -ENOSYS;
64 }
65 
kvm_flush_coalesced_mmio_buffer(void)66 void kvm_flush_coalesced_mmio_buffer(void)
67 {
68 }
69 
kvm_cpu_synchronize_state(CPUState * env)70 void kvm_cpu_synchronize_state(CPUState *env)
71 {
72 }
73 
kvm_cpu_synchronize_post_reset(CPUState * env)74 void kvm_cpu_synchronize_post_reset(CPUState *env)
75 {
76 }
77 
kvm_cpu_synchronize_post_init(CPUState * env)78 void kvm_cpu_synchronize_post_init(CPUState *env)
79 {
80 }
81 
kvm_cpu_exec(CPUState * env)82 int kvm_cpu_exec(CPUState *env)
83 {
84     abort ();
85 }
86 
kvm_has_sync_mmu(void)87 int kvm_has_sync_mmu(void)
88 {
89     return 0;
90 }
91 
kvm_has_vcpu_events(void)92 int kvm_has_vcpu_events(void)
93 {
94     return 0;
95 }
96 
kvm_has_robust_singlestep(void)97 int kvm_has_robust_singlestep(void)
98 {
99     return 0;
100 }
101 
kvm_has_many_ioeventfds(void)102 int kvm_has_many_ioeventfds(void)
103 {
104     return 0;
105 }
106 
kvm_setup_guest_memory(void * start,size_t size)107 void kvm_setup_guest_memory(void *start, size_t size)
108 {
109 }
110 
kvm_update_guest_debug(CPUState * env,unsigned long reinject_trap)111 int kvm_update_guest_debug(CPUState *env, unsigned long reinject_trap)
112 {
113     tb_flush(env);
114     return 0;
115 }
116 
kvm_insert_breakpoint(CPUState * current_env,target_ulong addr,target_ulong len,int type)117 int kvm_insert_breakpoint(CPUState *current_env, target_ulong addr,
118                           target_ulong len, int type)
119 {
120     return -EINVAL;
121 }
122 
kvm_remove_breakpoint(CPUState * current_env,target_ulong addr,target_ulong len,int type)123 int kvm_remove_breakpoint(CPUState *current_env, target_ulong addr,
124                           target_ulong len, int type)
125 {
126     return -EINVAL;
127 }
128 
kvm_remove_all_breakpoints(CPUState * current_env)129 void kvm_remove_all_breakpoints(CPUState *current_env)
130 {
131 }
132 
133 #ifndef _WIN32
kvm_set_signal_mask(CPUState * env,const sigset_t * sigset)134 int kvm_set_signal_mask(CPUState *env, const sigset_t *sigset)
135 {
136     abort();
137 }
138 #endif
139 
kvm_set_ioeventfd_pio_word(int fd,uint16_t addr,uint16_t val,bool assign)140 int kvm_set_ioeventfd_pio_word(int fd, uint16_t addr, uint16_t val, bool assign)
141 {
142     return -ENOSYS;
143 }
144 
kvm_set_ioeventfd_mmio_long(int fd,uint32_t adr,uint32_t val,bool assign)145 int kvm_set_ioeventfd_mmio_long(int fd, uint32_t adr, uint32_t val, bool assign)
146 {
147     return -ENOSYS;
148 }
149 
kvm_has_gsi_routing(void)150 int kvm_has_gsi_routing(void)
151 {
152     return 0;
153 }
154 
kvm_get_irq_route_gsi(void)155 int kvm_get_irq_route_gsi(void)
156 {
157     return -ENOSYS;
158 }
159 
kvm_add_msix(uint32_t gsi,uint32_t addr_lo,uint32_t addr_hi,uint32_t data)160 int kvm_add_msix(uint32_t gsi, uint32_t addr_lo,
161                  uint32_t addr_hi, uint32_t data)
162 {
163     return -ENOSYS;
164 }
165 
kvm_del_msix(uint32_t gsi,uint32_t addr_lo,uint32_t addr_hi,uint32_t data)166 int kvm_del_msix(uint32_t gsi, uint32_t addr_lo,
167                  uint32_t addr_hi, uint32_t data)
168 {
169     return -ENOSYS;
170 }
171 
kvm_update_msix(uint32_t old_gsi,uint32_t old_addr_lo,uint32_t old_addr_hi,uint32_t old_data,uint32_t new_gsi,uint32_t new_addr_lo,uint32_t new_addr_hi,uint32_t new_data)172 int kvm_update_msix(uint32_t old_gsi, uint32_t old_addr_lo,
173                     uint32_t old_addr_hi, uint32_t old_data,
174                     uint32_t new_gsi, uint32_t new_addr_lo,
175                     uint32_t new_addr_hi, uint32_t new_data)
176 {
177     return -ENOSYS;
178 }
179 
kvm_commit_irq_routes(void)180 int kvm_commit_irq_routes(void)
181 {
182     return -ENOSYS;
183 }
184 
kvm_set_irq(int irq,int level,int * status)185 int kvm_set_irq(int irq, int level, int *status)
186 {
187     assert(0);
188     return -ENOSYS;
189 }
kvm_on_sigbus(int code,void * addr)190 int kvm_on_sigbus(int code, void *addr)
191 {
192     return 1;
193 }
194