[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 06/40] cris: cleanup cpu type name compositio
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH v2 06/40] cris: cleanup cpu type name composition |
Date: |
Thu, 5 Oct 2017 12:17:35 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
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 <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> v2:
> - rename type_init_from_array into DEFINE_TYPES
> - add & use DEFINE_CRIS_CPU_TYPE (Philippe Mathieu-Daudé <address@hidden>)
>
> CC: address@hidden
> ---
> 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)
>
- [Qemu-devel] [PATCH v2 00/40] generalize parsing of cpu_model (part 2), Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 03/40] qom: add helper macro DEFINE_TYPES(), Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 02/40] qom: introduce type_register_static_array(), Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 04/40] alpha: cleanup cpu type name composition, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 01/40] qom: update doc comment for type_register[_static](), Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 06/40] cris: cleanup cpu type name composition, Igor Mammedov, 2017/10/05
- Re: [Qemu-devel] [PATCH v2 06/40] cris: cleanup cpu type name composition,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCH v2 07/40] cris: use generic cpu_model parsing, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 08/40] lm32: cleanup cpu type name composition, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 05/40] alpha: use generic cpu_model parsing, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 10/40] lm32: lm32_boards: use generic cpu_model parsing, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 09/40] lm32: milkymist: use generic cpu_model parsing, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 13/40] m68k: mcf5208: use generic cpu_model parsing, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 12/40] m68k: an5206: use generic cpu_model parsing, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 11/40] m68k: cleanup cpu type name composition, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 15/40] moxie: cleanup cpu type name composition, Igor Mammedov, 2017/10/05
- [Qemu-devel] [PATCH v2 18/40] openrisc: use generic cpu_model parsing, Igor Mammedov, 2017/10/05