diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2012-08-27 08:28:39 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-09-10 15:29:51 +0300 |
commit | 3ab73842446a9f2d9d78b23daa43ff382679eece (patch) | |
tree | d6ec67ee368992b502cf922efdf86655fa277ed3 | |
parent | cc57407e966e8467f9742e7a4ad47567b5951122 (diff) | |
download | qemu-3ab73842446a9f2d9d78b23daa43ff382679eece.zip qemu-3ab73842446a9f2d9d78b23daa43ff382679eece.tar.gz qemu-3ab73842446a9f2d9d78b23daa43ff382679eece.tar.bz2 |
kvm: Introduce kvm_has_intx_set_mask
Will be used by PCI device assignment code.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Acked-by: Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r-- | kvm-all.c | 8 | ||||
-rw-r--r-- | kvm.h | 1 |
2 files changed, 9 insertions, 0 deletions
@@ -88,6 +88,7 @@ struct KVMState int pit_state2; int xsave, xcrs; int many_ioeventfds; + int intx_set_mask; /* The man page (and posix) say ioctl numbers are signed int, but * they're not. Linux, glibc and *BSD all treat ioctl numbers as * unsigned, and treating them as signed here can break things */ @@ -1386,6 +1387,8 @@ int kvm_init(void) s->direct_msi = (kvm_check_extension(s, KVM_CAP_SIGNAL_MSI) > 0); #endif + s->intx_set_mask = kvm_check_extension(s, KVM_CAP_PCI_2_3); + ret = kvm_arch_init(s); if (ret < 0) { goto err; @@ -1740,6 +1743,11 @@ int kvm_has_gsi_routing(void) #endif } +int kvm_has_intx_set_mask(void) +{ + return kvm_state->intx_set_mask; +} + void *kvm_vmalloc(ram_addr_t size) { #ifdef TARGET_S390X @@ -117,6 +117,7 @@ int kvm_has_xcrs(void); int kvm_has_pit_state2(void); int kvm_has_many_ioeventfds(void); int kvm_has_gsi_routing(void); +int kvm_has_intx_set_mask(void); #ifdef NEED_CPU_H int kvm_init_vcpu(CPUArchState *env); |