diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2012-03-29 15:14:12 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-04-24 08:59:47 -0400 |
commit | 07975ad3b30579ca27d880491ad992326b930c63 (patch) | |
tree | fea166a02c387949a09a948a51781074bdc9ed68 /include/linux/kvm.h | |
parent | 1f15d10984c854e077da5aa1a23f901496b49773 (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.h | 11 |
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 | ||
719 | struct 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 |