diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2013-07-15 07:36:01 -0400 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2014-03-21 08:43:00 -0400 |
commit | 84223598778ba08041f4297fda485df83414d57e (patch) | |
tree | bd93b83a13cc5cd1f6781bf681161fb3982548c5 /include/uapi/linux/kvm.h | |
parent | 841b91c584b6d1e2a2cb508bd2d0236cd37e1750 (diff) |
KVM: s390: irq routing for adapter interrupts.
Introduce a new interrupt class for s390 adapter interrupts and enable
irqfds for s390.
This is depending on a new s390 specific vm capability, KVM_CAP_S390_IRQCHIP,
that needs to be enabled by userspace.
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'include/uapi/linux/kvm.h')
-rw-r--r-- | include/uapi/linux/kvm.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 46ea1b470c76..a8f4ee5d2e82 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
@@ -742,6 +742,7 @@ struct kvm_ppc_smmu_info { | |||
742 | #define KVM_CAP_HYPERV_TIME 96 | 742 | #define KVM_CAP_HYPERV_TIME 96 |
743 | #define KVM_CAP_IOAPIC_POLARITY_IGNORED 97 | 743 | #define KVM_CAP_IOAPIC_POLARITY_IGNORED 97 |
744 | #define KVM_CAP_ENABLE_CAP_VM 98 | 744 | #define KVM_CAP_ENABLE_CAP_VM 98 |
745 | #define KVM_CAP_S390_IRQCHIP 99 | ||
745 | 746 | ||
746 | #ifdef KVM_CAP_IRQ_ROUTING | 747 | #ifdef KVM_CAP_IRQ_ROUTING |
747 | 748 | ||
@@ -757,9 +758,18 @@ struct kvm_irq_routing_msi { | |||
757 | __u32 pad; | 758 | __u32 pad; |
758 | }; | 759 | }; |
759 | 760 | ||
761 | struct kvm_irq_routing_s390_adapter { | ||
762 | __u64 ind_addr; | ||
763 | __u64 summary_addr; | ||
764 | __u64 ind_offset; | ||
765 | __u32 summary_offset; | ||
766 | __u32 adapter_id; | ||
767 | }; | ||
768 | |||
760 | /* gsi routing entry types */ | 769 | /* gsi routing entry types */ |
761 | #define KVM_IRQ_ROUTING_IRQCHIP 1 | 770 | #define KVM_IRQ_ROUTING_IRQCHIP 1 |
762 | #define KVM_IRQ_ROUTING_MSI 2 | 771 | #define KVM_IRQ_ROUTING_MSI 2 |
772 | #define KVM_IRQ_ROUTING_S390_ADAPTER 3 | ||
763 | 773 | ||
764 | struct kvm_irq_routing_entry { | 774 | struct kvm_irq_routing_entry { |
765 | __u32 gsi; | 775 | __u32 gsi; |
@@ -769,6 +779,7 @@ struct kvm_irq_routing_entry { | |||
769 | union { | 779 | union { |
770 | struct kvm_irq_routing_irqchip irqchip; | 780 | struct kvm_irq_routing_irqchip irqchip; |
771 | struct kvm_irq_routing_msi msi; | 781 | struct kvm_irq_routing_msi msi; |
782 | struct kvm_irq_routing_s390_adapter adapter; | ||
772 | __u32 pad[8]; | 783 | __u32 pad[8]; |
773 | } u; | 784 | } u; |
774 | }; | 785 | }; |