On Mon, 2 Oct 2017 11:51:42 -0300 Philippe Mathieu-Daudé <[email protected]> wrote:
> Hi Igor, > > On 10/02/2017 06:07 AM, Igor Mammedov wrote: > > replace ambiguous TYPE macro with a new CRIS_CPU_TYPE_NAME > > and use it consistently in the code. > > > > Signed-off-by: Igor Mammedov <[email protected]> > > --- > > CC: [email protected] > > --- > > target/cris/cpu.h | 3 ++ > > target/cris/cpu.c | 93 > > +++++++++++++++++++++++-------------------------------- > > 2 files changed, 42 insertions(+), 54 deletions(-) > > > > diff --git a/target/cris/cpu.h b/target/cris/cpu.h > > index 5d822de..b64fa35 100644 > > --- a/target/cris/cpu.h > > +++ b/target/cris/cpu.h > > @@ -269,6 +269,9 @@ enum { > > > > #define cpu_init(cpu_model) cpu_generic_init(TYPE_CRIS_CPU, cpu_model) > > > > +#define CRIS_CPU_TYPE_SUFFIX "-" TYPE_CRIS_CPU > > +#define CRIS_CPU_TYPE_NAME(name) (name CRIS_CPU_TYPE_SUFFIX) > > + > > #define cpu_signal_handler cpu_cris_signal_handler > > > > /* MMU modes definitions */ > > diff --git a/target/cris/cpu.c b/target/cris/cpu.c > > index 88d93f2..8681c84 100644 > > --- a/target/cris/cpu.c > > +++ b/target/cris/cpu.c > > @@ -71,11 +71,11 @@ static ObjectClass *cris_cpu_class_by_name(const char > > *cpu_model) > > > > #if defined(CONFIG_USER_ONLY) > > if (strcasecmp(cpu_model, "any") == 0) { > > - return object_class_by_name("crisv32-" TYPE_CRIS_CPU); > > + return object_class_by_name(CRIS_CPU_TYPE_NAME("crisv32")); > > } > > #endif > > > > - typename = g_strdup_printf("%s-" TYPE_CRIS_CPU, cpu_model); > > + typename = g_strdup_printf(CRIS_CPU_TYPE_NAME("%s"), cpu_model); > > oc = object_class_by_name(typename); > > g_free(typename); > > if (oc != NULL && (!object_class_dynamic_cast(oc, TYPE_CRIS_CPU) || > > @@ -108,7 +108,7 @@ static void cris_cpu_list_entry(gpointer data, gpointer > > user_data) > > const char *typename = object_class_get_name(oc); > > char *name; > > > > - name = g_strndup(typename, strlen(typename) - strlen("-" > > TYPE_CRIS_CPU)); > > + name = g_strndup(typename, strlen(typename) - > > strlen(CRIS_CPU_TYPE_SUFFIX)); > > (*s->cpu_fprintf)(s->file, " %s\n", name); > > g_free(name); > > } > > @@ -259,38 +259,6 @@ static void crisv32_cpu_class_init(ObjectClass *oc, > > void *data) > > ccc->vr = 32; > > } > > > > -#define TYPE(model) model "-" TYPE_CRIS_CPU > > - > > -static const TypeInfo cris_cpu_model_type_infos[] = { > > - { > > - .name = TYPE("crisv8"), > > - .parent = TYPE_CRIS_CPU, > > - .class_init = crisv8_cpu_class_init, > > - }, { > > - .name = TYPE("crisv9"), > > - .parent = TYPE_CRIS_CPU, > > - .class_init = crisv9_cpu_class_init, > > - }, { > > - .name = TYPE("crisv10"), > > - .parent = TYPE_CRIS_CPU, > > - .class_init = crisv10_cpu_class_init, > > - }, { > > - .name = TYPE("crisv11"), > > - .parent = TYPE_CRIS_CPU, > > - .class_init = crisv11_cpu_class_init, > > - }, { > > - .name = TYPE("crisv17"), > > - .parent = TYPE_CRIS_CPU, > > - .class_init = crisv17_cpu_class_init, > > - }, { > > - .name = TYPE("crisv32"), > > - .parent = TYPE_CRIS_CPU, > > - .class_init = crisv32_cpu_class_init, > > - } > > -}; > > - > > -#undef TYPE > > - > > static void cris_cpu_class_init(ObjectClass *oc, void *data) > > { > > DeviceClass *dc = DEVICE_CLASS(oc); > > @@ -324,24 +292,41 @@ static void cris_cpu_class_init(ObjectClass *oc, void > > *data) > > cc->disas_set_info = cris_disas_set_info; > > } > > > > -static const TypeInfo cris_cpu_type_info = { > > - .name = TYPE_CRIS_CPU, > > - .parent = TYPE_CPU, > > - .instance_size = sizeof(CRISCPU), > > - .instance_init = cris_cpu_initfn, > > - .abstract = true, > > - .class_size = sizeof(CRISCPUClass), > > - .class_init = cris_cpu_class_init, > > -}; > > - > > -static void cris_cpu_register_types(void) > > -{ > > - int i; > > - > > - type_register_static(&cris_cpu_type_info); > > - for (i = 0; i < ARRAY_SIZE(cris_cpu_model_type_infos); i++) { > > - type_register_static(&cris_cpu_model_type_infos[i]); > > +static const TypeInfo cris_cpu_model_type_infos[] = { > > + { > > + .name = TYPE_CRIS_CPU, > > + .parent = TYPE_CPU, > > + .instance_size = sizeof(CRISCPU), > > + .instance_init = cris_cpu_initfn, > > + .abstract = true, > > + .class_size = sizeof(CRISCPUClass), > > + .class_init = cris_cpu_class_init, > > + }, > > + { > > + .name = CRIS_CPU_TYPE_NAME("crisv8"), > > + .parent = TYPE_CRIS_CPU, > > + .class_init = crisv8_cpu_class_init, > > what about using your scattering macro like in the Alpha port? i.e.: I've thought that I did it but it seems that it got lost along the way, I'll post here v2 that will do it > > DEFINE_CRIS_CPU_TYPE("crisv8", crisv8_cpu_class_init), > > > + }, { > > + .name = CRIS_CPU_TYPE_NAME("crisv9"), > > + .parent = TYPE_CRIS_CPU, > > + .class_init = crisv9_cpu_class_init, > > ... > > > + }, { > > + .name = CRIS_CPU_TYPE_NAME("crisv10"), > > + .parent = TYPE_CRIS_CPU, > > + .class_init = crisv10_cpu_class_init, > > + }, { > > + .name = CRIS_CPU_TYPE_NAME("crisv11"), > > + .parent = TYPE_CRIS_CPU, > > + .class_init = crisv11_cpu_class_init, > > + }, { > > + .name = CRIS_CPU_TYPE_NAME("crisv17"), > > + .parent = TYPE_CRIS_CPU, > > + .class_init = crisv17_cpu_class_init, > > + }, { > > + .name = CRIS_CPU_TYPE_NAME("crisv32"), > > + .parent = TYPE_CRIS_CPU, > > + .class_init = crisv32_cpu_class_init, > > } > > -} > > +}; > > > > -type_init(cris_cpu_register_types) > > +type_init_from_array(cris_cpu_model_type_infos) > >
