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 | |
| 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')
| -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 | }; |
