]> git.proxmox.com Git - qemu.git/blob - kvm-stub.c
kvm: Decouple 'MSI routing via irqfds' from 'kernel irqchip'
[qemu.git] / kvm-stub.c
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 "hw/hw.h"
15 #include "hw/msi.h"
16 #include "cpu.h"
17 #include "gdbstub.h"
18 #include "kvm.h"
19
20 KVMState *kvm_state;
21 bool kvm_kernel_irqchip;
22 bool kvm_async_interrupts_allowed;
23 bool kvm_irqfds_allowed;
24 bool kvm_msi_via_irqfd_allowed;
25
26 int kvm_init_vcpu(CPUArchState *env)
27 {
28 return -ENOSYS;
29 }
30
31 int kvm_coalesce_mmio_region(target_phys_addr_t start, ram_addr_t size)
32 {
33 return -ENOSYS;
34 }
35
36 int kvm_uncoalesce_mmio_region(target_phys_addr_t start, ram_addr_t size)
37 {
38 return -ENOSYS;
39 }
40
41 int kvm_init(void)
42 {
43 return -ENOSYS;
44 }
45
46 void kvm_flush_coalesced_mmio_buffer(void)
47 {
48 }
49
50 void kvm_cpu_synchronize_state(CPUArchState *env)
51 {
52 }
53
54 void kvm_cpu_synchronize_post_reset(CPUArchState *env)
55 {
56 }
57
58 void kvm_cpu_synchronize_post_init(CPUArchState *env)
59 {
60 }
61
62 int kvm_cpu_exec(CPUArchState *env)
63 {
64 abort ();
65 }
66
67 int kvm_has_sync_mmu(void)
68 {
69 return 0;
70 }
71
72 int kvm_has_many_ioeventfds(void)
73 {
74 return 0;
75 }
76
77 int kvm_has_pit_state2(void)
78 {
79 return 0;
80 }
81
82 void kvm_setup_guest_memory(void *start, size_t size)
83 {
84 }
85
86 int kvm_update_guest_debug(CPUArchState *env, unsigned long reinject_trap)
87 {
88 return -ENOSYS;
89 }
90
91 int kvm_insert_breakpoint(CPUArchState *current_env, target_ulong addr,
92 target_ulong len, int type)
93 {
94 return -EINVAL;
95 }
96
97 int kvm_remove_breakpoint(CPUArchState *current_env, target_ulong addr,
98 target_ulong len, int type)
99 {
100 return -EINVAL;
101 }
102
103 void kvm_remove_all_breakpoints(CPUArchState *current_env)
104 {
105 }
106
107 #ifndef _WIN32
108 int kvm_set_signal_mask(CPUArchState *env, const sigset_t *sigset)
109 {
110 abort();
111 }
112 #endif
113
114 int kvm_set_ioeventfd_pio_word(int fd, uint16_t addr, uint16_t val, bool assign)
115 {
116 return -ENOSYS;
117 }
118
119 int kvm_set_ioeventfd_mmio(int fd, uint32_t adr, uint32_t val, bool assign, uint32_t len)
120 {
121 return -ENOSYS;
122 }
123
124 int kvm_on_sigbus_vcpu(CPUArchState *env, int code, void *addr)
125 {
126 return 1;
127 }
128
129 int kvm_on_sigbus(int code, void *addr)
130 {
131 return 1;
132 }
133
134 int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg)
135 {
136 return -ENOSYS;
137 }
138
139 void kvm_irqchip_release_virq(KVMState *s, int virq)
140 {
141 }
142
143 int kvm_irqchip_add_irqfd(KVMState *s, int fd, int virq)
144 {
145 return -ENOSYS;
146 }
147
148 int kvm_irqchip_add_irq_notifier(KVMState *s, EventNotifier *n, int virq)
149 {
150 return -ENOSYS;
151 }
152
153 int kvm_irqchip_remove_irqfd(KVMState *s, int fd, int virq)
154 {
155 return -ENOSYS;
156 }
157
158 int kvm_irqchip_remove_irq_notifier(KVMState *s, EventNotifier *n, int virq)
159 {
160 return -ENOSYS;
161 }