aboutsummaryrefslogtreecommitdiff
path: root/kvm.h
diff options
context:
space:
mode:
Diffstat (limited to 'kvm.h')
-rw-r--r--kvm.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/kvm.h b/kvm.h
index 4ccae8c0c..cacbf3c14 100644
--- a/kvm.h
+++ b/kvm.h
@@ -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