Lines Matching +full:check +full:- +full:deprecated
2 * CPU models for s390x - System-only
9 * your option) any later version. See the COPYING file in the top-level
15 #include "s390x-internal.h"
20 #include "qapi/qobject-input-visitor.h"
22 #include "qapi/qapi-commands-machine.h"
32 /* check general model compatibility */ in check_unavailable_features()
33 if (max_model->def->gen < model->def->gen || in check_unavailable_features()
34 (max_model->def->gen == model->def->gen && in check_unavailable_features()
35 max_model->def->ec_ga < model->def->ec_ga)) { in check_unavailable_features()
40 bitmap_andnot(missing, model->features, max_model->features, in check_unavailable_features()
55 CpuDefinitionInfoList **cpu_list = &cpu_list_data->list; in create_cpu_model_list()
60 /* strip off the -s390x-cpu */ in create_cpu_model_list()
61 g_strrstr(name, "-" TYPE_S390_CPU)[0] = 0; in create_cpu_model_list()
63 info->name = name; in create_cpu_model_list()
64 info->has_migration_safe = true; in create_cpu_model_list()
65 info->migration_safe = scc->is_migration_safe; in create_cpu_model_list()
66 info->q_static = scc->is_static; in create_cpu_model_list()
67 info->q_typename = g_strdup(object_class_get_name(klass)); in create_cpu_model_list()
68 /* check for unavailable features */ in create_cpu_model_list()
69 if (cpu_list_data->model) { in create_cpu_model_list()
74 if (sc->model) { in create_cpu_model_list()
75 info->has_unavailable_features = true; in create_cpu_model_list()
76 check_unavailable_features(cpu_list_data->model, sc->model, in create_cpu_model_list()
77 &info->unavailable_features); in create_cpu_model_list()
110 oc = cpu_class_by_name(TYPE_S390_CPU, info->name); in cpu_model_from_info()
112 error_setg(errp, "The CPU definition \'%s\' is unknown.", info->name); in cpu_model_from_info()
115 if (S390_CPU_CLASS(oc)->kvm_required && !kvm_enabled()) { in cpu_model_from_info()
116 error_setg(errp, "The CPU definition '%s' requires KVM", info->name); in cpu_model_from_info()
122 if (!cpu->model) { in cpu_model_from_info()
129 if (info->props) { in cpu_model_from_info()
133 visitor = qobject_input_visitor_new(info->props); in cpu_model_from_info()
139 qdict = qobject_to(QDict, info->props); in cpu_model_from_info()
141 if (!object_property_set(obj, e->key, visitor, &err)) { in cpu_model_from_info()
158 memcpy(model, cpu->model, sizeof(*model)); in cpu_model_from_info()
180 info->name = g_strdup_printf("%s-base", model->def->name); in cpu_info_from_model()
184 bitmap_andnot(bitmap, model->def->base_feat, model->features, in cpu_info_from_model()
191 bitmap_andnot(bitmap, model->features, model->def->base_feat, in cpu_info_from_model()
198 s390_feat_bitmap_to_ascii(model->features, qdict, in cpu_info_from_model()
200 bitmap_complement(bitmap, model->features, S390_FEAT_MAX); in cpu_info_from_model()
207 info->props = QOBJECT(qdict); in cpu_info_from_model()
237 expansion_info->model = g_malloc0(sizeof(*expansion_info->model)); in qmp_query_cpu_model_expansion()
238 cpu_info_from_model(expansion_info->model, &s390_model, delta_changes); in qmp_query_cpu_model_expansion()
240 /* populate list of deprecated features */ in qmp_query_cpu_model_expansion()
246 * Only populate deprecated features that are a in qmp_query_cpu_model_expansion()
254 &expansion_info->deprecated_props, list_add_feat); in qmp_query_cpu_model_expansion()
256 expansion_info->has_deprecated_props = !!expansion_info->deprecated_props; in qmp_query_cpu_model_expansion()
291 /* check the cpu generation and ga level */ in qmp_query_cpu_model_comparison()
292 if (modela.def->gen == modelb.def->gen) { in qmp_query_cpu_model_comparison()
293 if (modela.def->ec_ga == modelb.def->ec_ga) { in qmp_query_cpu_model_comparison()
296 } else if (modela.def->ec_ga < modelb.def->ec_ga) { in qmp_query_cpu_model_comparison()
301 } else if (modela.def->gen < modelb.def->gen) { in qmp_query_cpu_model_comparison()
308 list_add_feat("type", &compare_info->responsible_properties); in qmp_query_cpu_model_comparison()
311 /* check the feature set */ in qmp_query_cpu_model_comparison()
317 &compare_info->responsible_properties, in qmp_query_cpu_model_comparison()
320 s390_feat_bitmap_to_ascii(added, &compare_info->responsible_properties, in qmp_query_cpu_model_comparison()
333 compare_info->result = gen_result; in qmp_query_cpu_model_comparison()
335 compare_info->result = gen_result; in qmp_query_cpu_model_comparison()
337 compare_info->result = feat_result; in qmp_query_cpu_model_comparison()
339 compare_info->result = CPU_MODEL_COMPARE_RESULT_INCOMPATIBLE; in qmp_query_cpu_model_comparison()
372 if (modela.def->gen == modelb.def->gen) { in qmp_query_cpu_model_baseline()
373 if (modela.def->type == modelb.def->type) { in qmp_query_cpu_model_baseline()
374 cpu_type = modela.def->type; in qmp_query_cpu_model_baseline()
378 max_gen = modela.def->gen; in qmp_query_cpu_model_baseline()
379 max_gen_ga = MIN(modela.def->ec_ga, modelb.def->ec_ga); in qmp_query_cpu_model_baseline()
380 } else if (modela.def->gen > modelb.def->gen) { in qmp_query_cpu_model_baseline()
381 cpu_type = modelb.def->type; in qmp_query_cpu_model_baseline()
382 max_gen = modelb.def->gen; in qmp_query_cpu_model_baseline()
383 max_gen_ga = modelb.def->ec_ga; in qmp_query_cpu_model_baseline()
385 cpu_type = modela.def->type; in qmp_query_cpu_model_baseline()
386 max_gen = modela.def->gen; in qmp_query_cpu_model_baseline()
387 max_gen_ga = modela.def->ec_ga; in qmp_query_cpu_model_baseline()
401 bitmap_and(model.features, model.features, model.def->full_feat, in qmp_query_cpu_model_baseline()
405 baseline_info->model = g_malloc0(sizeof(*baseline_info->model)); in qmp_query_cpu_model_baseline()
406 cpu_info_from_model(baseline_info->model, &model, true); in qmp_query_cpu_model_baseline()