diff options
| author | Jason J. Herne <jjherne@linux.vnet.ibm.com> | 2014-09-23 09:23:01 -0400 |
|---|---|---|
| committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2015-03-17 11:33:06 -0400 |
| commit | 30ee2a984f07b00895e0e01d78859b3aff9307c7 (patch) | |
| tree | ee5c8b449a7030653bccb4829df374f969840328 /include/uapi/linux | |
| parent | e44fc8c9dab215ac0e398622a05574cffd5f5184 (diff) | |
KVM: s390: Create ioctl for Getting/Setting guest storage keys
Provide the KVM_S390_GET_SKEYS and KVM_S390_SET_SKEYS ioctl which can be used
to get/set guest storage keys. This functionality is needed for live migration
of s390 guests that use storage keys.
Signed-off-by: Jason J. Herne <jjherne@linux.vnet.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/kvm.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 57445ef88097..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 |
| @@ -791,6 +801,7 @@ struct kvm_ppc_smmu_info { | |||
| 791 | #define KVM_CAP_S390_VECTOR_REGISTERS 107 | 801 | #define KVM_CAP_S390_VECTOR_REGISTERS 107 |
| 792 | #define KVM_CAP_S390_MEM_OP 108 | 802 | #define KVM_CAP_S390_MEM_OP 108 |
| 793 | #define KVM_CAP_S390_USER_STSI 109 | 803 | #define KVM_CAP_S390_USER_STSI 109 |
| 804 | #define KVM_CAP_S390_SKEYS 110 | ||
| 794 | 805 | ||
| 795 | #ifdef KVM_CAP_IRQ_ROUTING | 806 | #ifdef KVM_CAP_IRQ_ROUTING |
| 796 | 807 | ||
| @@ -1168,6 +1179,9 @@ struct kvm_s390_ucas_mapping { | |||
| 1168 | #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) |
| 1169 | /* Available with KVM_CAP_S390_MEM_OP */ | 1180 | /* Available with KVM_CAP_S390_MEM_OP */ |
| 1170 | #define KVM_S390_MEM_OP _IOW(KVMIO, 0xb1, struct kvm_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) | ||
| 1171 | 1185 | ||
| 1172 | #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) | 1186 | #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) |
| 1173 | #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) | 1187 | #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) |
