ctxt->node = hostCPUNode;
if (virQEMUCapsParseHostCPUModelInfoDepFeats(ctxt, &hostCPU->full_dep_props,
- "./deprecatedFeatures") < 0) {
+ "./deprecatedFeatures") < 0 ||
+ virQEMUCapsParseHostCPUModelInfoDepFeats(ctxt, &hostCPU->static_dep_props,
+ "./hostDeprecatedFeatures") < 0) {
return -1;
}
virQEMUCapsFormatHostCPUModelInfoDepFeats(buf, model->full_dep_props,
"deprecatedFeatures");
+ virQEMUCapsFormatHostCPUModelInfoDepFeats(buf, model->static_dep_props,
+ "hostDeprecatedFeatures");
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</hostCPU>\n");
}
g_strfreev(model_info->full_dep_props);
+ g_strfreev(model_info->static_dep_props);
g_free(model_info->props);
g_free(model_info->name);
g_free(model_info);
}
copy->full_dep_props = g_strdupv(orig->full_dep_props);
+ copy->static_dep_props = g_strdupv(orig->static_dep_props);
return copy;
}
size_t nprops;
qemuMonitorCPUProperty *props;
GStrv full_dep_props; /* deprecated properties resulting from a full model expansion */
+ GStrv static_dep_props; /* deprecated properties resulting from a static model expansion */
bool migratability;
};
qemuMonitorJSONParseCPUModelExpansion(const char *cpu_name,
virJSONValue *cpu_props,
virJSONValue *cpu_deprecated_props,
+ qemuMonitorCPUModelExpansionType type,
qemuMonitorCPUModelInfo **model_info)
{
g_autoptr(qemuMonitorCPUModelInfo) expanded_model = NULL;
+ GStrv dep_props = NULL;
if (qemuMonitorJSONParseCPUModel(cpu_name, cpu_props, &expanded_model) < 0)
return -1;
if (cpu_deprecated_props &&
virJSONValueArraySize(cpu_deprecated_props) &&
- (!(expanded_model->full_dep_props = virJSONValueArrayToStringList(cpu_deprecated_props)))) {
+ (!(dep_props = virJSONValueArrayToStringList(cpu_deprecated_props)))) {
return -1;
}
+ switch (type) {
+ case QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC:
+ expanded_model->static_dep_props = dep_props;
+ break;
+
+ case QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC_FULL:
+ case QEMU_MONITOR_CPU_MODEL_EXPANSION_FULL:
+ expanded_model->full_dep_props = dep_props;
+ break;
+ }
+
*model_info = g_steal_pointer(&expanded_model);
return 0;
}
return qemuMonitorJSONParseCPUModelExpansion(cpu_name, cpu_props,
cpu_deprecated_props,
- model_info);
+ type, model_info);
}
<property name='cte'/>
<property name='csske'/>
</deprecatedFeatures>
+ <hostDeprecatedFeatures>
+ <property name='bpb'/>
+ <property name='te'/>
+ <property name='cte'/>
+ <property name='csske'/>
+ </hostDeprecatedFeatures>
</hostCPU>
<cpu type='kvm' name='z13' typename='z13-s390x-cpu' usable='yes'/>
<cpu type='kvm' name='z990.3' typename='z990.3-s390x-cpu' usable='yes'/>
<property name='cte'/>
<property name='csske'/>
</deprecatedFeatures>
+ <hostDeprecatedFeatures>
+ <property name='bpb'/>
+ <property name='te'/>
+ <property name='cte'/>
+ <property name='csske'/>
+ </hostDeprecatedFeatures>
</hostCPU>
<cpu type='kvm' name='z13' typename='z13-s390x-cpu' usable='yes'/>
<cpu type='kvm' name='z990.3' typename='z990.3-s390x-cpu' usable='yes'/>
<property name='cte'/>
<property name='csske'/>
</deprecatedFeatures>
+ <hostDeprecatedFeatures>
+ <property name='bpb'/>
+ <property name='te'/>
+ <property name='cte'/>
+ <property name='csske'/>
+ </hostDeprecatedFeatures>
</hostCPU>
<cpu type='kvm' name='z13' typename='z13-s390x-cpu' usable='yes'/>
<cpu type='kvm' name='z990.3' typename='z990.3-s390x-cpu' usable='yes'/>