Add support for handling I/O interrupts (standard, subchannel-related ones and rudimentary adapter interrupts). The subchannel-identifying parameters are encoded into the interrupt type. I/O interrupts are floating, so they can't be injected on a specific vcpu.
Showing the changes to include/uapi/linux (1 of 4 files). Show all
Unified · Split
| @@ -401,6 +401,15 @@ struct kvm_s390_psw { · 400 unmodified lines | ||
| 401 | 401 | #define KVM_S390_INT_SERVICE 0xffff2401u |
| 402 | 402 | #define KVM_S390_INT_EMERGENCY 0xffff1201u |
| 403 | 403 | #define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u |
| 404 | +/* Anything below 0xfffe0000u is taken by INT_IO */ | |
| 405 | +#define KVM_S390_INT_IO(ai,cssid,ssid,schid) \ | |
| 406 | + (((schid)) | \ | |
| 407 | + ((ssid) << 16) | \ | |
| 408 | + ((cssid) << 18) | \ | |
| 409 | + ((ai) << 26)) | |
| 410 | +#define KVM_S390_INT_IO_MIN 0x00000000u | |
| 411 | +#define KVM_S390_INT_IO_MAX 0xfffdffffu | |
| 412 | + | |
| 404 | 413 | |
| 405 | 414 | struct kvm_s390_interrupt { |
| 406 | 415 | __u32 type; |