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