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/osdep.h" 14 #include "sysemu/kvm.h" 15 #include "hw/pci/msi.h" 16 17 KVMState *kvm_state; 18 bool kvm_kernel_irqchip; 19 bool kvm_async_interrupts_allowed; 20 bool kvm_eventfds_allowed; 21 bool kvm_resamplefds_allowed; 22 bool kvm_msi_via_irqfd_allowed; 23 bool kvm_gsi_routing_allowed; 24 bool kvm_gsi_direct_mapping; 25 bool kvm_allowed; 26 bool kvm_readonly_mem_allowed; 27 bool kvm_ioeventfd_any_length_allowed; 28 bool kvm_msi_use_devid; 29 30 void kvm_flush_coalesced_mmio_buffer(void) 31 { 32 } 33 34 void kvm_cpu_synchronize_state(CPUState *cpu) 35 { 36 } 37 38 bool kvm_has_sync_mmu(void) 39 { 40 return false; 41 } 42 43 int kvm_has_many_ioeventfds(void) 44 { 45 return 0; 46 } 47 48 int kvm_on_sigbus_vcpu(CPUState *cpu, int code, void *addr) 49 { 50 return 1; 51 } 52 53 int kvm_on_sigbus(int code, void *addr) 54 { 55 return 1; 56 } 57 58 int kvm_irqchip_add_msi_route(KVMRouteChange *c, int vector, PCIDevice *dev) 59 { 60 return -ENOSYS; 61 } 62 63 void kvm_init_irq_routing(KVMState *s) 64 { 65 } 66 67 void kvm_irqchip_release_virq(KVMState *s, int virq) 68 { 69 } 70 71 int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg, 72 PCIDevice *dev) 73 { 74 return -ENOSYS; 75 } 76 77 void kvm_irqchip_commit_routes(KVMState *s) 78 { 79 } 80 81 void kvm_irqchip_add_change_notifier(Notifier *n) 82 { 83 } 84 85 void kvm_irqchip_remove_change_notifier(Notifier *n) 86 { 87 } 88 89 void kvm_irqchip_change_notify(void) 90 { 91 } 92 93 int kvm_irqchip_add_irqfd_notifier_gsi(KVMState *s, EventNotifier *n, 94 EventNotifier *rn, int virq) 95 { 96 return -ENOSYS; 97 } 98 99 int kvm_irqchip_remove_irqfd_notifier_gsi(KVMState *s, EventNotifier *n, 100 int virq) 101 { 102 return -ENOSYS; 103 } 104 105 unsigned int kvm_get_max_memslots(void) 106 { 107 return 0; 108 } 109 110 unsigned int kvm_get_free_memslots(void) 111 { 112 return 0; 113 } 114 115 void kvm_init_cpu_signals(CPUState *cpu) 116 { 117 abort(); 118 } 119 120 bool kvm_arm_supports_user_irq(void) 121 { 122 return false; 123 } 124 125 bool kvm_dirty_ring_enabled(void) 126 { 127 return false; 128 } 129 130 uint32_t kvm_dirty_ring_size(void) 131 { 132 return 0; 133 } 134