On 10/05/2017 10:50 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 <imamm...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > v2: > - rename type_init_from_array into DEFINE_TYPES > - add & use DEFINE_CRIS_CPU_TYPE (Philippe Mathieu-Daudé <f4...@amsat.org>) > > CC: edgar.igles...@gmail.com > --- > target/cris/cpu.h | 3 +++ > target/cris/cpu.c | 81 > +++++++++++++++++++------------------------------------ > 2 files changed, 30 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..adf1bc4 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,29 @@ 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, > -}; > +#define DEFINE_CRIS_CPU_TYPE(cpu_model, initfn) \ > + { \ > + .parent = TYPE_CRIS_CPU, \ > + .class_init = initfn, \ > + .name = CRIS_CPU_TYPE_NAME(cpu_model), \ > + } > > -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, > + }, > + DEFINE_CRIS_CPU_TYPE("crisv8", crisv8_cpu_class_init), > + DEFINE_CRIS_CPU_TYPE("crisv9", crisv9_cpu_class_init), > + DEFINE_CRIS_CPU_TYPE("crisv10", crisv10_cpu_class_init), > + DEFINE_CRIS_CPU_TYPE("crisv11", crisv11_cpu_class_init), > + DEFINE_CRIS_CPU_TYPE("crisv17", crisv17_cpu_class_init), > + DEFINE_CRIS_CPU_TYPE("crisv32", crisv32_cpu_class_init), > +}; > > -type_init(cris_cpu_register_types) > +DEFINE_TYPES(cris_cpu_model_type_infos) >