target/i386: Add new property note to versioned CPU models

Add additional information for -cpu help to indicate the changes in this
version of CPU model.

Suggested-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Tao Xu <tao3.xu@intel.com>
Message-Id: <20200212081328.7385-4-tao3.xu@intel.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
Tao Xu 2020-02-12 16:13:27 +08:00 committed by Eduardo Habkost
parent ab0c942c86
commit c63938df0a
1 changed files with 9 additions and 2 deletions

View File

@ -1690,6 +1690,7 @@ typedef struct PropValue {
typedef struct X86CPUVersionDefinition { typedef struct X86CPUVersionDefinition {
X86CPUVersion version; X86CPUVersion version;
const char *alias; const char *alias;
const char *note;
PropValue *props; PropValue *props;
} X86CPUVersionDefinition; } X86CPUVersionDefinition;
@ -1720,6 +1721,7 @@ struct X86CPUModel {
X86CPUDefinition *cpudef; X86CPUDefinition *cpudef;
/* CPU model version */ /* CPU model version */
X86CPUVersion version; X86CPUVersion version;
const char *note;
/* /*
* If true, this is an alias CPU model. * If true, this is an alias CPU model.
* This matters only for "-cpu help" and query-cpu-definitions * This matters only for "-cpu help" and query-cpu-definitions
@ -4861,6 +4863,7 @@ static void x86_cpu_list_entry(gpointer data, gpointer user_data)
g_autofree char *name = x86_cpu_class_get_model_name(cc); g_autofree char *name = x86_cpu_class_get_model_name(cc);
g_autofree char *desc = g_strdup(cc->model_description); g_autofree char *desc = g_strdup(cc->model_description);
g_autofree char *alias_of = x86_cpu_class_get_alias_of(cc); g_autofree char *alias_of = x86_cpu_class_get_alias_of(cc);
g_autofree char *model_id = x86_cpu_class_get_model_id(cc);
if (!desc && alias_of) { if (!desc && alias_of) {
if (cc->model && cc->model->version == CPU_VERSION_AUTO) { if (cc->model && cc->model->version == CPU_VERSION_AUTO) {
@ -4869,11 +4872,14 @@ static void x86_cpu_list_entry(gpointer data, gpointer user_data)
desc = g_strdup_printf("(alias of %s)", alias_of); desc = g_strdup_printf("(alias of %s)", alias_of);
} }
} }
if (!desc && cc->model && cc->model->note) {
desc = g_strdup_printf("%s [%s]", model_id, cc->model->note);
}
if (!desc) { if (!desc) {
desc = x86_cpu_class_get_model_id(cc); desc = g_strdup_printf("%s", model_id);
} }
qemu_printf("x86 %-20s %-48s\n", name, desc); qemu_printf("x86 %-20s %-58s\n", name, desc);
} }
/* list available CPU models and flags */ /* list available CPU models and flags */
@ -5350,6 +5356,7 @@ static void x86_register_cpudef_types(X86CPUDefinition *def)
x86_cpu_versioned_model_name(def, vdef->version); x86_cpu_versioned_model_name(def, vdef->version);
m->cpudef = def; m->cpudef = def;
m->version = vdef->version; m->version = vdef->version;
m->note = vdef->note;
x86_register_cpu_model_type(name, m); x86_register_cpu_model_type(name, m);
if (vdef->alias) { if (vdef->alias) {