@@ -334,18 +334,36 @@ const S390CPUDef *s390_find_cpu_def(uint16_t type, uint8_t gen, uint8_t ec_ga,
static void s390_print_cpu_model_list_entry(gpointer data, gpointer user_data)
{
const S390CPUClass *scc = S390_CPU_CLASS((ObjectClass *)data);
+ CPUClass *cc = CPU_CLASS(scc);
char *name = g_strdup(object_class_get_name((ObjectClass *)data));
- const char *details = "";
+ g_autoptr(GString) details = g_string_new("(");
if (scc->is_static) {
- details = "(static, migration-safe)";
- } else if (scc->is_migration_safe) {
- details = "(migration-safe)";
+ g_string_append(details, "static");
+ }
+ if (scc->is_migration_safe) {
+ if (details->len > 1) {
+ g_string_append(details, ", ");
+ }
+ g_string_append(details, "migration-safe");
+ }
+ if (cc->deprecation_note) {
+ if (details->len > 1) {
+ g_string_append(details, ", ");
+ }
+ g_string_append(details, "deprecated: ");
+ g_string_append(details, cc->deprecation_note);
+ }
+ if (details->len > 1) {
+ g_string_append(details, ")");
+ }
+ if (details->len == 1) {
+ g_string_truncate(details, 0);
}
/* strip off the -s390x-cpu */
g_strrstr(name, "-" TYPE_S390_CPU)[0] = 0;
- qemu_printf("s390 %-15s %-35s %s\n", name, scc->desc, details);
+ qemu_printf("s390 %-15s %-35s %s\n", name, scc->desc, details->str);
g_free(name);
}
The deprecation notes are currently only displayed at runtime when the user activates a CPU. The QMP query displays a simple flag for deprecation, while '-cpu help' displays nothing unless the deprecation info is duplicated into the 'notes' field. This changes the code so that deprecation notes are explicitly shown in '-cpu help', to assist the user in deciding what to use. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- target/s390x/cpu_models.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-)