diff options
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/kvm.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 82634a492fe0..1162ef7a3fa1 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
| @@ -147,6 +147,16 @@ struct kvm_pit_config { | |||
| 147 | 147 | ||
| 148 | #define KVM_PIT_SPEAKER_DUMMY 1 | 148 | #define KVM_PIT_SPEAKER_DUMMY 1 |
| 149 | 149 | ||
| 150 | struct kvm_s390_skeys { | ||
| 151 | __u64 start_gfn; | ||
| 152 | __u64 count; | ||
| 153 | __u64 skeydata_addr; | ||
| 154 | __u32 flags; | ||
| 155 | __u32 reserved[9]; | ||
| 156 | }; | ||
| 157 | #define KVM_S390_GET_SKEYS_NONE 1 | ||
| 158 | #define KVM_S390_SKEYS_MAX 1048576 | ||
| 159 | |||
| 150 | #define KVM_EXIT_UNKNOWN 0 | 160 | #define KVM_EXIT_UNKNOWN 0 |
| 151 | #define KVM_EXIT_EXCEPTION 1 | 161 | #define KVM_EXIT_EXCEPTION 1 |
| 152 | #define KVM_EXIT_IO 2 | 162 | #define KVM_EXIT_IO 2 |
| @@ -172,6 +182,7 @@ struct kvm_pit_config { | |||
| 172 | #define KVM_EXIT_S390_TSCH 22 | 182 | #define KVM_EXIT_S390_TSCH 22 |
| 173 | #define KVM_EXIT_EPR 23 | 183 | #define KVM_EXIT_EPR 23 |
| 174 | #define KVM_EXIT_SYSTEM_EVENT 24 | 184 | #define KVM_EXIT_SYSTEM_EVENT 24 |
| 185 | #define KVM_EXIT_S390_STSI 25 | ||
| 175 | 186 | ||
| 176 | /* For KVM_EXIT_INTERNAL_ERROR */ | 187 | /* For KVM_EXIT_INTERNAL_ERROR */ |
| 177 | /* Emulate instruction failed. */ | 188 | /* Emulate instruction failed. */ |
| @@ -309,6 +320,15 @@ struct kvm_run { | |||
| 309 | __u32 type; | 320 | __u32 type; |
| 310 | __u64 flags; | 321 | __u64 flags; |
| 311 | } system_event; | 322 | } system_event; |
| 323 | /* KVM_EXIT_S390_STSI */ | ||
| 324 | struct { | ||
| 325 | __u64 addr; | ||
| 326 | __u8 ar; | ||
| 327 | __u8 reserved; | ||
| 328 | __u8 fc; | ||
| 329 | __u8 sel1; | ||
| 330 | __u16 sel2; | ||
| 331 | } s390_stsi; | ||
| 312 | /* Fix the size of the union. */ | 332 | /* Fix the size of the union. */ |
| 313 | char padding[256]; | 333 | char padding[256]; |
| 314 | }; | 334 | }; |
| @@ -365,6 +385,24 @@ struct kvm_translation { | |||
| 365 | __u8 pad[5]; | 385 | __u8 pad[5]; |
| 366 | }; | 386 | }; |
| 367 | 387 | ||
| 388 | /* for KVM_S390_MEM_OP */ | ||
| 389 | struct kvm_s390_mem_op { | ||
| 390 | /* in */ | ||
| 391 | __u64 gaddr; /* the guest address */ | ||
| 392 | __u64 flags; /* flags */ | ||
| 393 | __u32 size; /* amount of bytes */ | ||
| 394 | __u32 op; /* type of operation */ | ||
| 395 | __u64 buf; /* buffer in userspace */ | ||
| 396 | __u8 ar; /* the access register number */ | ||
| 397 | __u8 reserved[31]; /* should be set to 0 */ | ||
| 398 | }; | ||
| 399 | /* types for kvm_s390_mem_op->op */ | ||
| 400 | #define KVM_S390_MEMOP_LOGICAL_READ 0 | ||
| 401 | #define KVM_S390_MEMOP_LOGICAL_WRITE 1 | ||
| 402 | /* flags for kvm_s390_mem_op->flags */ | ||
| 403 | #define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0) | ||
| 404 | #define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1) | ||
| 405 | |||
| 368 | /* for KVM_INTERRUPT */ | 406 | /* for KVM_INTERRUPT */ |
| 369 | struct kvm_interrupt { | 407 | struct kvm_interrupt { |
| 370 | /* in */ | 408 | /* in */ |
| @@ -761,6 +799,9 @@ struct kvm_ppc_smmu_info { | |||
| 761 | #define KVM_CAP_CHECK_EXTENSION_VM 105 | 799 | #define KVM_CAP_CHECK_EXTENSION_VM 105 |
| 762 | #define KVM_CAP_S390_USER_SIGP 106 | 800 | #define KVM_CAP_S390_USER_SIGP 106 |
| 763 | #define KVM_CAP_S390_VECTOR_REGISTERS 107 | 801 | #define KVM_CAP_S390_VECTOR_REGISTERS 107 |
| 802 | #define KVM_CAP_S390_MEM_OP 108 | ||
| 803 | #define KVM_CAP_S390_USER_STSI 109 | ||
| 804 | #define KVM_CAP_S390_SKEYS 110 | ||
| 764 | 805 | ||
| 765 | #ifdef KVM_CAP_IRQ_ROUTING | 806 | #ifdef KVM_CAP_IRQ_ROUTING |
| 766 | 807 | ||
| @@ -1136,6 +1177,11 @@ struct kvm_s390_ucas_mapping { | |||
| 1136 | #define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init) | 1177 | #define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init) |
| 1137 | #define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init) | 1178 | #define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init) |
| 1138 | #define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list) | 1179 | #define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list) |
| 1180 | /* Available with KVM_CAP_S390_MEM_OP */ | ||
| 1181 | #define KVM_S390_MEM_OP _IOW(KVMIO, 0xb1, struct kvm_s390_mem_op) | ||
| 1182 | /* Available with KVM_CAP_S390_SKEYS */ | ||
| 1183 | #define KVM_S390_GET_SKEYS _IOW(KVMIO, 0xb2, struct kvm_s390_skeys) | ||
| 1184 | #define KVM_S390_SET_SKEYS _IOW(KVMIO, 0xb3, struct kvm_s390_skeys) | ||
| 1139 | 1185 | ||
| 1140 | #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) | 1186 | #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) |
| 1141 | #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) | 1187 | #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) |
