For target/loongarch, the CPU type name can be: (1) the combination of the CPU model name and suffix; (2) same to the CPU model name. The CPU model names have been shown correctly in loongarch_cpu_list_entry() and loongarch_cpu_add_definition() by following (1).
Use generic helper cpu_model_from_type() in above two functions to show the CPU model names. The format of the output from cpu_list() is also adjusted to match with other targets. Signed-off-by: Gavin Shan <gs...@redhat.com> --- target/loongarch/cpu.c | 5 ++++- target/loongarch/loongarch-qmp-cmds.c | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c index 65f9320e34..3ab8e4f792 100644 --- a/target/loongarch/cpu.c +++ b/target/loongarch/cpu.c @@ -473,14 +473,17 @@ static void loongarch_la132_initfn(Object *obj) static void loongarch_cpu_list_entry(gpointer data, gpointer user_data) { const char *typename = object_class_get_name(OBJECT_CLASS(data)); + char *model = cpu_model_from_type(typename); - qemu_printf("%s\n", typename); + qemu_printf(" %s\n", model); + g_free(model); } void loongarch_cpu_list(void) { GSList *list; list = object_class_get_list_sorted(TYPE_LOONGARCH_CPU, false); + qemu_printf("Available CPUs:\n"); g_slist_foreach(list, loongarch_cpu_list_entry, NULL); g_slist_free(list); } diff --git a/target/loongarch/loongarch-qmp-cmds.c b/target/loongarch/loongarch-qmp-cmds.c index 6c25957881..815ceaf0ea 100644 --- a/target/loongarch/loongarch-qmp-cmds.c +++ b/target/loongarch/loongarch-qmp-cmds.c @@ -17,8 +17,7 @@ static void loongarch_cpu_add_definition(gpointer data, gpointer user_data) CpuDefinitionInfo *info = g_new0(CpuDefinitionInfo, 1); const char *typename = object_class_get_name(oc); - info->name = g_strndup(typename, - strlen(typename) - strlen("-" TYPE_LOONGARCH_CPU)); + info->name = cpu_model_from_type(typename); info->q_typename = g_strdup(typename); QAPI_LIST_PREPEND(*cpu_list, info); -- 2.41.0