diff options
Diffstat (limited to 'kvm.h')
-rw-r--r-- | kvm.h | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -54,9 +54,10 @@ int kvm_has_robust_singlestep(void); int kvm_has_debugregs(void); int kvm_has_xsave(void); int kvm_has_xcrs(void); -int kvm_has_pit_state2(void); int kvm_has_many_ioeventfds(void); +int kvm_has_pit_state2(void); int kvm_has_gsi_routing(void); +int kvm_has_intx_set_mask(void); int kvm_allows_irq0_override(void); @@ -85,6 +86,7 @@ int kvm_set_signal_mask(CPUArchState *env, const sigset_t *sigset); int kvm_on_sigbus_vcpu(CPUArchState *env, int code, void *addr); int kvm_on_sigbus(int code, void *addr); +#endif /* NEED_CPU_H */ /* internal API */ @@ -96,6 +98,7 @@ int kvm_ioctl(KVMState *s, int type, ...); int kvm_vm_ioctl(KVMState *s, int type, ...); +#ifdef NEED_CPU_H int kvm_vcpu_ioctl(CPUArchState *env, int type, ...); /* Arch specific hooks */ @@ -211,5 +214,30 @@ int kvm_physical_memory_addr_from_host(KVMState *s, void *ram_addr, int kvm_set_ioeventfd_mmio(int fd, uint32_t adr, uint32_t val, bool assign, uint32_t size); +int kvm_set_irqfd(int gsi, int fd, bool assigned); + int kvm_set_ioeventfd_pio_word(int fd, uint16_t adr, uint16_t val, bool assign); + +typedef struct KVMMsiMessage { + uint32_t gsi; + uint32_t addr_lo; + uint32_t addr_hi; + uint32_t data; +} KVMMsiMessage; + +int kvm_get_irq_route_gsi(void); + +int kvm_msi_message_add(KVMMsiMessage *msg); +int kvm_msi_message_del(KVMMsiMessage *msg); +int kvm_msi_message_update(KVMMsiMessage *old, KVMMsiMessage *new); + +#ifndef NEED_CPU_H +int kvm_irqchip_set_irq(KVMState *s, int irq, int level); +int kvm_irqchip_commit_routes(KVMState *s); +#endif + +#ifdef NEED_CPU_H +#include "qemu-kvm.h" +#endif + #endif |