diff options
author | 2023-10-10 11:40:56 +0000 | |
---|---|---|
committer | 2023-10-10 11:40:56 +0000 | |
commit | e02cda008591317b1625707ff8e115a4841aa889 (patch) | |
tree | aee302e3cf8b59ec2d32ec481be3d1afddfc8968 /accel/stubs/kvm-stub.c | |
parent | cc668e6b7e0ffd8c9d130513d12053cf5eda1d3b (diff) |
Introduce Virtio-loopback epsilon release:
Epsilon release introduces a new compatibility layer which make virtio-loopback
design to work with QEMU and rust-vmm vhost-user backend without require any
changes.
Signed-off-by: Timos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>
Change-Id: I52e57563e08a7d0bdc002f8e928ee61ba0c53dd9
Diffstat (limited to 'accel/stubs/kvm-stub.c')
-rw-r--r-- | accel/stubs/kvm-stub.c | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/accel/stubs/kvm-stub.c b/accel/stubs/kvm-stub.c new file mode 100644 index 000000000..5319573e0 --- /dev/null +++ b/accel/stubs/kvm-stub.c @@ -0,0 +1,155 @@ +/* + * QEMU KVM stub + * + * Copyright Red Hat, Inc. 2010 + * + * Author: Paolo Bonzini <pbonzini@redhat.com> + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "sysemu/kvm.h" + +#ifndef CONFIG_USER_ONLY +#include "hw/pci/msi.h" +#endif + +KVMState *kvm_state; +bool kvm_kernel_irqchip; +bool kvm_async_interrupts_allowed; +bool kvm_eventfds_allowed; +bool kvm_irqfds_allowed; +bool kvm_resamplefds_allowed; +bool kvm_msi_via_irqfd_allowed; +bool kvm_gsi_routing_allowed; +bool kvm_gsi_direct_mapping; +bool kvm_allowed; +bool kvm_readonly_mem_allowed; +bool kvm_ioeventfd_any_length_allowed; +bool kvm_msi_use_devid; + +void kvm_flush_coalesced_mmio_buffer(void) +{ +} + +void kvm_cpu_synchronize_state(CPUState *cpu) +{ +} + +bool kvm_has_sync_mmu(void) +{ + return false; +} + +int kvm_has_many_ioeventfds(void) +{ + return 0; +} + +int kvm_update_guest_debug(CPUState *cpu, unsigned long reinject_trap) +{ + return -ENOSYS; +} + +int kvm_insert_breakpoint(CPUState *cpu, target_ulong addr, + target_ulong len, int type) +{ + return -EINVAL; +} + +int kvm_remove_breakpoint(CPUState *cpu, target_ulong addr, + target_ulong len, int type) +{ + return -EINVAL; +} + +void kvm_remove_all_breakpoints(CPUState *cpu) +{ +} + +int kvm_on_sigbus_vcpu(CPUState *cpu, int code, void *addr) +{ + return 1; +} + +int kvm_on_sigbus(int code, void *addr) +{ + return 1; +} + +#ifndef CONFIG_USER_ONLY +int kvm_irqchip_add_msi_route(KVMState *s, int vector, PCIDevice *dev) +{ + return -ENOSYS; +} + +void kvm_init_irq_routing(KVMState *s) +{ +} + +void kvm_irqchip_release_virq(KVMState *s, int virq) +{ +} + +int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg, + PCIDevice *dev) +{ + return -ENOSYS; +} + +void kvm_irqchip_commit_routes(KVMState *s) +{ +} + +void kvm_irqchip_add_change_notifier(Notifier *n) +{ +} + +void kvm_irqchip_remove_change_notifier(Notifier *n) +{ +} + +void kvm_irqchip_change_notify(void) +{ +} + +int kvm_irqchip_add_adapter_route(KVMState *s, AdapterInfo *adapter) +{ + return -ENOSYS; +} + +int kvm_irqchip_add_irqfd_notifier_gsi(KVMState *s, EventNotifier *n, + EventNotifier *rn, int virq) +{ + return -ENOSYS; +} + +int kvm_irqchip_remove_irqfd_notifier_gsi(KVMState *s, EventNotifier *n, + int virq) +{ + return -ENOSYS; +} + +bool kvm_has_free_slot(MachineState *ms) +{ + return false; +} + +void kvm_init_cpu_signals(CPUState *cpu) +{ + abort(); +} + +bool kvm_arm_supports_user_irq(void) +{ + return false; +} + +bool kvm_dirty_ring_enabled(void) +{ + return false; +} +#endif |