summaryrefslogtreecommitdiffstats
path: root/include/linux/kvm.h
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2012-03-29 15:14:12 -0400
committerAvi Kivity <avi@redhat.com>2012-04-24 08:59:47 -0400
commit07975ad3b30579ca27d880491ad992326b930c63 (patch)
treefea166a02c387949a09a948a51781074bdc9ed68 /include/linux/kvm.h
parent1f15d10984c854e077da5aa1a23f901496b49773 (diff)
KVM: Introduce direct MSI message injection for in-kernel irqchips
Currently, MSI messages can only be injected to in-kernel irqchips by defining a corresponding IRQ route for each message. This is not only unhandy if the MSI messages are generated "on the fly" by user space, IRQ routes are a limited resource that user space has to manage carefully. By providing a direct injection path, we can both avoid using up limited resources and simplify the necessary steps for user land. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'include/linux/kvm.h')
-rw-r--r--include/linux/kvm.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 7a9dd4b3dede..225b452e1d1d 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -590,6 +590,7 @@ struct kvm_ppc_pvinfo {
590#define KVM_CAP_SYNC_REGS 74 590#define KVM_CAP_SYNC_REGS 74
591#define KVM_CAP_PCI_2_3 75 591#define KVM_CAP_PCI_2_3 75
592#define KVM_CAP_KVMCLOCK_CTRL 76 592#define KVM_CAP_KVMCLOCK_CTRL 76
593#define KVM_CAP_SIGNAL_MSI 77
593 594
594#ifdef KVM_CAP_IRQ_ROUTING 595#ifdef KVM_CAP_IRQ_ROUTING
595 596
@@ -715,6 +716,14 @@ struct kvm_one_reg {
715 __u64 addr; 716 __u64 addr;
716}; 717};
717 718
719struct kvm_msi {
720 __u32 address_lo;
721 __u32 address_hi;
722 __u32 data;
723 __u32 flags;
724 __u8 pad[16];
725};
726
718/* 727/*
719 * ioctls for VM fds 728 * ioctls for VM fds
720 */ 729 */
@@ -789,6 +798,8 @@ struct kvm_s390_ucas_mapping {
789/* Available with KVM_CAP_PCI_2_3 */ 798/* Available with KVM_CAP_PCI_2_3 */
790#define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4, \ 799#define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4, \
791 struct kvm_assigned_pci_dev) 800 struct kvm_assigned_pci_dev)
801/* Available with KVM_CAP_SIGNAL_MSI */
802#define KVM_SIGNAL_MSI _IOW(KVMIO, 0xa5, struct kvm_msi)
792 803
793/* 804/*
794 * ioctls for vcpu fds 805 * ioctls for vcpu fds