aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/kvm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/kvm.h')
-rw-r--r--include/uapi/linux/kvm.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index c70577cf67bc..3c56ba3d80c1 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -169,6 +169,8 @@ struct kvm_pit_config {
169#define KVM_EXIT_PAPR_HCALL 19 169#define KVM_EXIT_PAPR_HCALL 19
170#define KVM_EXIT_S390_UCONTROL 20 170#define KVM_EXIT_S390_UCONTROL 20
171#define KVM_EXIT_WATCHDOG 21 171#define KVM_EXIT_WATCHDOG 21
172#define KVM_EXIT_S390_TSCH 22
173#define KVM_EXIT_EPR 23
172 174
173/* For KVM_EXIT_INTERNAL_ERROR */ 175/* For KVM_EXIT_INTERNAL_ERROR */
174/* Emulate instruction failed. */ 176/* Emulate instruction failed. */
@@ -286,6 +288,19 @@ struct kvm_run {
286 __u64 ret; 288 __u64 ret;
287 __u64 args[9]; 289 __u64 args[9];
288 } papr_hcall; 290 } papr_hcall;
291 /* KVM_EXIT_S390_TSCH */
292 struct {
293 __u16 subchannel_id;
294 __u16 subchannel_nr;
295 __u32 io_int_parm;
296 __u32 io_int_word;
297 __u32 ipb;
298 __u8 dequeued;
299 } s390_tsch;
300 /* KVM_EXIT_EPR */
301 struct {
302 __u32 epr;
303 } epr;
289 /* Fix the size of the union. */ 304 /* Fix the size of the union. */
290 char padding[256]; 305 char padding[256];
291 }; 306 };
@@ -398,10 +413,20 @@ struct kvm_s390_psw {
398#define KVM_S390_PROGRAM_INT 0xfffe0001u 413#define KVM_S390_PROGRAM_INT 0xfffe0001u
399#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u 414#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
400#define KVM_S390_RESTART 0xfffe0003u 415#define KVM_S390_RESTART 0xfffe0003u
416#define KVM_S390_MCHK 0xfffe1000u
401#define KVM_S390_INT_VIRTIO 0xffff2603u 417#define KVM_S390_INT_VIRTIO 0xffff2603u
402#define KVM_S390_INT_SERVICE 0xffff2401u 418#define KVM_S390_INT_SERVICE 0xffff2401u
403#define KVM_S390_INT_EMERGENCY 0xffff1201u 419#define KVM_S390_INT_EMERGENCY 0xffff1201u
404#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u 420#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u
421/* Anything below 0xfffe0000u is taken by INT_IO */
422#define KVM_S390_INT_IO(ai,cssid,ssid,schid) \
423 (((schid)) | \
424 ((ssid) << 16) | \
425 ((cssid) << 18) | \
426 ((ai) << 26))
427#define KVM_S390_INT_IO_MIN 0x00000000u
428#define KVM_S390_INT_IO_MAX 0xfffdffffu
429
405 430
406struct kvm_s390_interrupt { 431struct kvm_s390_interrupt {
407 __u32 type; 432 __u32 type;
@@ -636,6 +661,8 @@ struct kvm_ppc_smmu_info {
636#define KVM_CAP_IRQFD_RESAMPLE 82 661#define KVM_CAP_IRQFD_RESAMPLE 82
637#define KVM_CAP_PPC_BOOKE_WATCHDOG 83 662#define KVM_CAP_PPC_BOOKE_WATCHDOG 83
638#define KVM_CAP_PPC_HTAB_FD 84 663#define KVM_CAP_PPC_HTAB_FD 84
664#define KVM_CAP_S390_CSS_SUPPORT 85
665#define KVM_CAP_PPC_EPR 86
639#define KVM_CAP_ARM_PSCI 87 666#define KVM_CAP_ARM_PSCI 87
640#define KVM_CAP_ARM_SET_DEVICE_ADDR 88 667#define KVM_CAP_ARM_SET_DEVICE_ADDR 88
641 668