On Sun, 16 Jun 2019 23:28:15 +0900 Yoshinori Sato <ys...@users.sourceforge.jp> wrote:
> Signed-off-by: Yoshinori Sato <ys...@users.sourceforge.jp> > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > Message-Id: <20190607091116.49044-4-ys...@users.sourceforge.jp> > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > [PMD: Use newer QOM style, split cpu-qom.h, restrict access to > extable array, use rx_cpu_tlb_fill() extracted from patch of > Yoshinori Sato 'Convert to CPUClass::tlb_fill'] > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > > Signed-off-by: Yoshinori Sato <ys...@users.sourceforge.jp> > --- [...] > diff --git a/target/rx/cpu.c b/target/rx/cpu.c > new file mode 100644 > index 0000000000..4147c5c939 > --- /dev/null > +++ b/target/rx/cpu.c [...] > +static void rx_cpu_list_entry(gpointer data, gpointer user_data) > +{ > + const char *typename = object_class_get_name(OBJECT_CLASS(data)); > + int len = strlen(typename) - strlen(RX_CPU_TYPE_SUFFIX); > + > + qemu_printf("%.*s\n", len, typename); > +} > + > +void rx_cpu_list(void) > +{ > + GSList *list; > + list = object_class_get_list_sorted(TYPE_RX_CPU, false); > + g_slist_foreach(list, rx_cpu_list_entry, NULL); > + g_slist_free(list); > +} > + > +static ObjectClass *rx_cpu_class_by_name(const char *cpu_model) > +{ > + ObjectClass *oc; > + char *typename; > + > + oc = object_class_by_name(cpu_model); > + if (oc != NULL && object_class_dynamic_cast(oc, TYPE_RX_CPU) != NULL && > + !object_class_is_abstract(oc)) { > + return oc; > + } > + > + typename = g_strdup_printf(RX_CPU_TYPE_NAME("%s"), cpu_model); > + oc = object_class_by_name(typename); > + if (oc != NULL && object_class_is_abstract(oc)) { > + oc = NULL; > + } > + g_free(typename); > + > + if (!oc) { > + /* default to rx62n */ > + oc = object_class_by_name(TYPE_RX62N_CPU); > + } please address comments made on v19 version of the patch and reply with fixed v21 here (assuming it doesn't break follow up patches) > + return oc; > +} > + [...]