From: Gavin Shan <gshan@redhat.com>
To: qemu-arm@nongnu.org
Cc: qemu-devel@nongnu.org, qemu-riscv@nongnu.org,
qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, imp@bsdimp.com,
kevans@freebsd.org, eduardo@habkost.net,
marcel.apfelbaum@gmail.com, philmd@linaro.org,
wangyanan55@huawei.com, peter.maydell@linaro.org,
b.galvani@gmail.com, strahinja.p.jankovic@gmail.com,
sundeep.lkml@gmail.com, kfting@nuvoton.com, wuhaotsh@google.com,
nieklinnenbank@gmail.com, rad@semihalf.com,
quic_llindhol@quicinc.com, marcin.juszkiewicz@linaro.org,
laurent@vivier.eu, vijai@behindbytes.com, palmer@dabbelt.com,
alistair.francis@wdc.com, bin.meng@windriver.com,
liweiwei@iscas.ac.cn, dbarboza@ventanamicro.com,
zhiwei_liu@linux.alibaba.com, richard.henderson@linaro.org,
mrolnik@gmail.com, edgar.iglesias@gmail.com, bcain@quicinc.com,
gaosong@loongson.cn, yangxiaojuan@loongson.cn,
aurelien@aurel32.net, jiaxun.yang@flygoat.com,
aleksandar.rikalo@syrmia.com, chenhuacai@kernel.org,
crwulff@gmail.com, marex@denx.de, shorne@gmail.com, clg@kaod.org,
david@gibson.dropbear.id.au, groug@kaod.org, npiggin@gmail.com,
ysato@users.sourceforge.jp, david@redhat.com, thuth@redhat.com,
iii@linux.ibm.com, mark.cave-ayland@ilande.co.uk,
atar4qemu@gmail.com, kbastian@mail.uni-paderborn.de,
jcmvbkbc@gmail.com, pbonzini@redhat.com, imammedo@redhat.com,
shan.gavin@gmail.com
Subject: [PATCH v3 04/32] target/avr: Use generic helper to show CPU model names
Date: Thu, 7 Sep 2023 10:35:25 +1000 [thread overview]
Message-ID: <20230907003553.1636896-5-gshan@redhat.com> (raw)
In-Reply-To: <20230907003553.1636896-1-gshan@redhat.com>
For target/avr, the CPU model name is resolved as same to the CPU
type name in avr_cpu_class_by_name(). Actually, the CPU model name
is the combination of the CPU model name and suffix.
Support the resolution from the combination of CPU model name and
suffix to the CPU type name in avr_cpu_class_by_name(), and use
the generic helper cpu_model_from_type() to show CPU model names
in cpu_list(), with adjusted format to match with other targets.
Signed-off-by: Gavin Shan <gshan@redhat.com>
---
target/avr/cpu.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/target/avr/cpu.c b/target/avr/cpu.c
index 8f741f258c..cef9f84e32 100644
--- a/target/avr/cpu.c
+++ b/target/avr/cpu.c
@@ -157,13 +157,23 @@ static void avr_cpu_initfn(Object *obj)
static ObjectClass *avr_cpu_class_by_name(const char *cpu_model)
{
ObjectClass *oc;
+ char *typename;
oc = object_class_by_name(cpu_model);
- if (object_class_dynamic_cast(oc, TYPE_AVR_CPU) == NULL ||
- object_class_is_abstract(oc)) {
- oc = NULL;
+ if (object_class_dynamic_cast(oc, TYPE_AVR_CPU) &&
+ !object_class_is_abstract(oc)) {
+ return oc;
}
- return oc;
+
+ typename = g_strdup_printf(AVR_CPU_TYPE_NAME("%s"), cpu_model);
+ oc = object_class_by_name(typename);
+ g_free(typename);
+ if (object_class_dynamic_cast(oc, TYPE_AVR_CPU) &&
+ !object_class_is_abstract(oc)) {
+ return oc;
+ }
+
+ return NULL;
}
static void avr_cpu_dump_state(CPUState *cs, FILE *f, int flags)
@@ -366,14 +376,17 @@ typedef struct AVRCPUInfo {
static void avr_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 avr_cpu_list(void)
{
GSList *list;
list = object_class_get_list_sorted(TYPE_AVR_CPU, false);
+ qemu_printf("Available CPUs:\n");
g_slist_foreach(list, avr_cpu_list_entry, NULL);
g_slist_free(list);
}
--
2.41.0
next prev parent reply other threads:[~2023-09-07 0:38 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-07 0:35 [PATCH v3 00/32] Unified CPU type check Gavin Shan
2023-09-07 0:35 ` [PATCH v3 01/32] cpu: Add helper cpu_model_from_type() Gavin Shan
2023-09-07 8:54 ` Philippe Mathieu-Daudé
2023-09-07 23:35 ` Gavin Shan
2023-09-07 0:35 ` [PATCH v3 02/32] target/alpha: Use generic helper to show CPU model names Gavin Shan
2023-09-07 0:35 ` [PATCH v3 03/32] target/arm: " Gavin Shan
2023-09-07 0:35 ` Gavin Shan [this message]
2023-09-07 0:35 ` [PATCH v3 05/32] target/cris: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 06/32] target/hexagon: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 07/32] target/i386: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 08/32] target/loongarch: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 09/32] target/m68k: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 10/32] target/mips: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 11/32] target/openrisc: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 12/32] target/ppc: " Gavin Shan
2023-09-07 7:41 ` Cédric Le Goater
2023-09-07 0:35 ` [PATCH v3 13/32] target/riscv: " Gavin Shan
2023-09-19 20:24 ` Daniel Henrique Barboza
2023-09-07 0:35 ` [PATCH v3 14/32] target/rx: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 15/32] target/s390x: " Gavin Shan
2023-09-07 8:20 ` David Hildenbrand
2023-09-07 23:44 ` Gavin Shan
2023-09-08 8:04 ` Philippe Mathieu-Daudé
2023-09-08 11:23 ` Philippe Mathieu-Daudé
2023-09-10 23:51 ` Gavin Shan
2023-09-07 8:31 ` Thomas Huth
2023-09-07 23:36 ` Gavin Shan
2023-09-07 0:35 ` [PATCH v3 16/32] target/sh4: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 17/32] target/tricore: " Gavin Shan
2023-09-07 5:41 ` Bastian Koppelmann
2023-09-07 0:35 ` [PATCH v3 18/32] target/sparc: Improve sparc_cpu_class_by_name() Gavin Shan
2023-09-07 0:35 ` [PATCH v3 19/32] target/xtensa: Improve xtensa_cpu_class_by_name() Gavin Shan
2023-09-07 0:35 ` [PATCH v3 20/32] target/hppa: Implement hppa_cpu_list() Gavin Shan
2023-09-07 0:35 ` [PATCH v3 21/32] target/microblaze: Implement microblaze_cpu_list() Gavin Shan
2023-09-07 0:35 ` [PATCH v3 22/32] target/nios2: Implement nios2_cpu_list() Gavin Shan
2023-09-07 0:35 ` [PATCH v3 23/32] Mark cpu_list() supported on all targets Gavin Shan
2023-09-07 0:35 ` [PATCH v3 24/32] machine: Constify MachineClass::valid_cpu_types[i] Gavin Shan
2023-09-07 8:58 ` Philippe Mathieu-Daudé
2023-09-07 0:35 ` [PATCH v3 25/32] machine: Use error handling when CPU type is checked Gavin Shan
2023-09-07 0:35 ` [PATCH v3 26/32] machine: Introduce helper is_cpu_type_supported() Gavin Shan
2023-09-07 0:35 ` [PATCH v3 27/32] machine: Print CPU model name instead of CPU type name Gavin Shan
2023-09-07 9:05 ` Philippe Mathieu-Daudé
2023-09-07 23:49 ` Gavin Shan
2023-09-08 7:56 ` Philippe Mathieu-Daudé
2023-09-10 23:52 ` Gavin Shan
2023-09-07 0:35 ` [PATCH v3 28/32] hw/arm/virt: Check CPU type in machine_run_board_init() Gavin Shan
2023-09-07 8:59 ` Philippe Mathieu-Daudé
2023-09-07 0:35 ` [PATCH v3 29/32] hw/arm/virt: Hide host CPU model for tcg Gavin Shan
2023-09-07 0:35 ` [PATCH v3 30/32] hw/arm/sbsa-ref: Check CPU type in machine_run_board_init() Gavin Shan
2023-09-07 9:05 ` Philippe Mathieu-Daudé
2023-09-07 16:12 ` Leif Lindholm
2023-09-07 0:35 ` [PATCH v3 31/32] hw/arm: " Gavin Shan
2023-09-07 0:35 ` [PATCH v3 32/32] hw/riscv/shakti_c: " Gavin Shan
2023-09-07 9:07 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230907003553.1636896-5-gshan@redhat.com \
--to=gshan@redhat.com \
--cc=aleksandar.rikalo@syrmia.com \
--cc=alistair.francis@wdc.com \
--cc=atar4qemu@gmail.com \
--cc=aurelien@aurel32.net \
--cc=b.galvani@gmail.com \
--cc=bcain@quicinc.com \
--cc=bin.meng@windriver.com \
--cc=chenhuacai@kernel.org \
--cc=clg@kaod.org \
--cc=crwulff@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=david@redhat.com \
--cc=dbarboza@ventanamicro.com \
--cc=edgar.iglesias@gmail.com \
--cc=eduardo@habkost.net \
--cc=gaosong@loongson.cn \
--cc=groug@kaod.org \
--cc=iii@linux.ibm.com \
--cc=imammedo@redhat.com \
--cc=imp@bsdimp.com \
--cc=jcmvbkbc@gmail.com \
--cc=jiaxun.yang@flygoat.com \
--cc=kbastian@mail.uni-paderborn.de \
--cc=kevans@freebsd.org \
--cc=kfting@nuvoton.com \
--cc=laurent@vivier.eu \
--cc=liweiwei@iscas.ac.cn \
--cc=marcel.apfelbaum@gmail.com \
--cc=marcin.juszkiewicz@linaro.org \
--cc=marex@denx.de \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mrolnik@gmail.com \
--cc=nieklinnenbank@gmail.com \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=quic_llindhol@quicinc.com \
--cc=rad@semihalf.com \
--cc=richard.henderson@linaro.org \
--cc=shan.gavin@gmail.com \
--cc=shorne@gmail.com \
--cc=strahinja.p.jankovic@gmail.com \
--cc=sundeep.lkml@gmail.com \
--cc=thuth@redhat.com \
--cc=vijai@behindbytes.com \
--cc=wangyanan55@huawei.com \
--cc=wuhaotsh@google.com \
--cc=yangxiaojuan@loongson.cn \
--cc=ysato@users.sourceforge.jp \
--cc=zhiwei_liu@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).