diff options
| author | Jens Freimann <jfrei@linux.vnet.ibm.com> | 2013-10-07 10:13:45 -0400 |
|---|---|---|
| committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2014-01-30 04:25:20 -0500 |
| commit | c05c4186bbe4e99d64e8a36f7ca7f480da5d109f (patch) | |
| tree | 746d5b7f59b3c74668ab2b0abcfb48b64b4512e9 /arch/s390/include/uapi | |
| parent | 81aa8efe0190cf5bf7eaafb57341cd7d0aea96cd (diff) | |
KVM: s390: add floating irq controller
This patch adds a floating irq controller as a kvm_device.
It will be necessary for migration of floating interrupts as well
as for hardening the reset code by allowing user space to explicitly
remove all pending floating interrupts.
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/include/uapi')
| -rw-r--r-- | arch/s390/include/uapi/asm/kvm.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/s390/include/uapi/asm/kvm.h b/arch/s390/include/uapi/asm/kvm.h index d25da598ec62..38d5f98552bb 100644 --- a/arch/s390/include/uapi/asm/kvm.h +++ b/arch/s390/include/uapi/asm/kvm.h | |||
| @@ -16,6 +16,20 @@ | |||
| 16 | 16 | ||
| 17 | #define __KVM_S390 | 17 | #define __KVM_S390 |
| 18 | 18 | ||
| 19 | /* Device control API: s390-specific devices */ | ||
| 20 | #define KVM_DEV_FLIC_GET_ALL_IRQS 1 | ||
| 21 | #define KVM_DEV_FLIC_ENQUEUE 2 | ||
| 22 | #define KVM_DEV_FLIC_CLEAR_IRQS 3 | ||
| 23 | /* | ||
| 24 | * We can have up to 4*64k pending subchannels + 8 adapter interrupts, | ||
| 25 | * as well as up to ASYNC_PF_PER_VCPU*KVM_MAX_VCPUS pfault done interrupts. | ||
| 26 | * There are also sclp and machine checks. This gives us | ||
| 27 | * sizeof(kvm_s390_irq)*(4*65536+8+64*64+1+1) = 72 * 266250 = 19170000 | ||
| 28 | * Lets round up to 8192 pages. | ||
| 29 | */ | ||
| 30 | |||
| 31 | #define KVM_S390_FLIC_MAX_BUFFER 0x2000000 | ||
| 32 | |||
| 19 | /* for KVM_GET_REGS and KVM_SET_REGS */ | 33 | /* for KVM_GET_REGS and KVM_SET_REGS */ |
| 20 | struct kvm_regs { | 34 | struct kvm_regs { |
| 21 | /* general purpose regs for s390 */ | 35 | /* general purpose regs for s390 */ |
