|
@@ -168,6 +168,8 @@ struct kvm_pit_config {
|
|
#define KVM_EXIT_PAPR_HCALL 19
|
|
#define KVM_EXIT_PAPR_HCALL 19
|
|
#define KVM_EXIT_S390_UCONTROL 20
|
|
#define KVM_EXIT_S390_UCONTROL 20
|
|
#define KVM_EXIT_WATCHDOG 21
|
|
#define KVM_EXIT_WATCHDOG 21
|
|
|
|
+#define KVM_EXIT_S390_TSCH 22
|
|
|
|
+#define KVM_EXIT_EPR 23
|
|
|
|
|
|
/* For KVM_EXIT_INTERNAL_ERROR */
|
|
/* For KVM_EXIT_INTERNAL_ERROR */
|
|
/* Emulate instruction failed. */
|
|
/* Emulate instruction failed. */
|
|
@@ -285,6 +287,19 @@ struct kvm_run {
|
|
__u64 ret;
|
|
__u64 ret;
|
|
__u64 args[9];
|
|
__u64 args[9];
|
|
} papr_hcall;
|
|
} papr_hcall;
|
|
|
|
+ /* KVM_EXIT_S390_TSCH */
|
|
|
|
+ struct {
|
|
|
|
+ __u16 subchannel_id;
|
|
|
|
+ __u16 subchannel_nr;
|
|
|
|
+ __u32 io_int_parm;
|
|
|
|
+ __u32 io_int_word;
|
|
|
|
+ __u32 ipb;
|
|
|
|
+ __u8 dequeued;
|
|
|
|
+ } s390_tsch;
|
|
|
|
+ /* KVM_EXIT_EPR */
|
|
|
|
+ struct {
|
|
|
|
+ __u32 epr;
|
|
|
|
+ } epr;
|
|
/* Fix the size of the union. */
|
|
/* Fix the size of the union. */
|
|
char padding[256];
|
|
char padding[256];
|
|
};
|
|
};
|
|
@@ -397,10 +412,20 @@ struct kvm_s390_psw {
|
|
#define KVM_S390_PROGRAM_INT 0xfffe0001u
|
|
#define KVM_S390_PROGRAM_INT 0xfffe0001u
|
|
#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
|
|
#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
|
|
#define KVM_S390_RESTART 0xfffe0003u
|
|
#define KVM_S390_RESTART 0xfffe0003u
|
|
|
|
+#define KVM_S390_MCHK 0xfffe1000u
|
|
#define KVM_S390_INT_VIRTIO 0xffff2603u
|
|
#define KVM_S390_INT_VIRTIO 0xffff2603u
|
|
#define KVM_S390_INT_SERVICE 0xffff2401u
|
|
#define KVM_S390_INT_SERVICE 0xffff2401u
|
|
#define KVM_S390_INT_EMERGENCY 0xffff1201u
|
|
#define KVM_S390_INT_EMERGENCY 0xffff1201u
|
|
#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u
|
|
#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u
|
|
|
|
+/* Anything below 0xfffe0000u is taken by INT_IO */
|
|
|
|
+#define KVM_S390_INT_IO(ai,cssid,ssid,schid) \
|
|
|
|
+ (((schid)) | \
|
|
|
|
+ ((ssid) << 16) | \
|
|
|
|
+ ((cssid) << 18) | \
|
|
|
|
+ ((ai) << 26))
|
|
|
|
+#define KVM_S390_INT_IO_MIN 0x00000000u
|
|
|
|
+#define KVM_S390_INT_IO_MAX 0xfffdffffu
|
|
|
|
+
|
|
|
|
|
|
struct kvm_s390_interrupt {
|
|
struct kvm_s390_interrupt {
|
|
__u32 type;
|
|
__u32 type;
|
|
@@ -635,6 +660,8 @@ struct kvm_ppc_smmu_info {
|
|
#define KVM_CAP_IRQFD_RESAMPLE 82
|
|
#define KVM_CAP_IRQFD_RESAMPLE 82
|
|
#define KVM_CAP_PPC_BOOKE_WATCHDOG 83
|
|
#define KVM_CAP_PPC_BOOKE_WATCHDOG 83
|
|
#define KVM_CAP_PPC_HTAB_FD 84
|
|
#define KVM_CAP_PPC_HTAB_FD 84
|
|
|
|
+#define KVM_CAP_S390_CSS_SUPPORT 85
|
|
|
|
+#define KVM_CAP_PPC_EPR 86
|
|
|
|
|
|
#ifdef KVM_CAP_IRQ_ROUTING
|
|
#ifdef KVM_CAP_IRQ_ROUTING
|
|
|
|
|