@@ -93,6 +93,47 @@ struct kvm_s390_vm_cpu_machine {
93
93
__u64 fac_list [256 ];
94
94
};
95
95
96
+ #define KVM_S390_VM_CPU_PROCESSOR_FEAT 2
97
+ #define KVM_S390_VM_CPU_MACHINE_FEAT 3
98
+
99
+ #define KVM_S390_VM_CPU_FEAT_NR_BITS 1024
100
+ #define KVM_S390_VM_CPU_FEAT_ESOP 0
101
+ #define KVM_S390_VM_CPU_FEAT_SIEF2 1
102
+ #define KVM_S390_VM_CPU_FEAT_64BSCAO 2
103
+ #define KVM_S390_VM_CPU_FEAT_SIIF 3
104
+ #define KVM_S390_VM_CPU_FEAT_GPERE 4
105
+ #define KVM_S390_VM_CPU_FEAT_GSLS 5
106
+ #define KVM_S390_VM_CPU_FEAT_IB 6
107
+ #define KVM_S390_VM_CPU_FEAT_CEI 7
108
+ #define KVM_S390_VM_CPU_FEAT_IBS 8
109
+ #define KVM_S390_VM_CPU_FEAT_SKEY 9
110
+ #define KVM_S390_VM_CPU_FEAT_CMMA 10
111
+ #define KVM_S390_VM_CPU_FEAT_PFMFI 11
112
+ #define KVM_S390_VM_CPU_FEAT_SIGPIF 12
113
+ struct kvm_s390_vm_cpu_feat {
114
+ __u64 feat [16 ];
115
+ };
116
+
117
+ #define KVM_S390_VM_CPU_PROCESSOR_SUBFUNC 4
118
+ #define KVM_S390_VM_CPU_MACHINE_SUBFUNC 5
119
+ /* for "test bit" instructions MSB 0 bit ordering, for "query" raw blocks */
120
+ struct kvm_s390_vm_cpu_subfunc {
121
+ __u8 plo [32 ]; /* always */
122
+ __u8 ptff [16 ]; /* with TOD-clock steering */
123
+ __u8 kmac [16 ]; /* with MSA */
124
+ __u8 kmc [16 ]; /* with MSA */
125
+ __u8 km [16 ]; /* with MSA */
126
+ __u8 kimd [16 ]; /* with MSA */
127
+ __u8 klmd [16 ]; /* with MSA */
128
+ __u8 pckmo [16 ]; /* with MSA3 */
129
+ __u8 kmctr [16 ]; /* with MSA4 */
130
+ __u8 kmf [16 ]; /* with MSA4 */
131
+ __u8 kmo [16 ]; /* with MSA4 */
132
+ __u8 pcc [16 ]; /* with MSA4 */
133
+ __u8 ppno [16 ]; /* with MSA5 */
134
+ __u8 reserved [1824 ];
135
+ };
136
+
96
137
/* kvm attributes for crypto */
97
138
#define KVM_S390_VM_CRYPTO_ENABLE_AES_KW 0
98
139
#define KVM_S390_VM_CRYPTO_ENABLE_DEA_KW 1
0 commit comments