All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: philmd@redhat.com, qemu-devel@nongnu.org, ysato@users.sourceforge.jp
Subject: Re: [Qemu-devel] [PATCH v16 13/23] target/rx: Fix cpu types and names
Date: Fri, 31 May 2019 16:23:41 +0200	[thread overview]
Message-ID: <20190531162341.3743eb45@redhat.com> (raw)
In-Reply-To: <20190531134315.4109-14-richard.henderson@linaro.org>

On Fri, 31 May 2019 08:43:05 -0500
Richard Henderson <richard.henderson@linaro.org> wrote:

> There was confusion here about abstract classes and naming cpus.
> We had registered a concrete class named "-rxcpu".  This was put
> into the default cpu fields, and matched, so basic tests worked.
> However, no value for -cpu could ever match in rx_cpu_class_by_name.
> 
> Rename the base class to "rx-cpu" and make it abstract.  This
> matches what we do for most other targets.  Create a new concrete
> cpu with the name "rx62n-rx-cpu".

since it hasn't been merged yet, it would be better to squash this
fixup into 3/23

[...]

> diff --git a/target/rx/cpu.c b/target/rx/cpu.c
> index 3268077d08..41fe1de4bb 100644
> --- a/target/rx/cpu.c
> +++ b/target/rx/cpu.c
> @@ -74,13 +74,14 @@ 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);
> +    qemu_printf("  %.*s\n", len, typename);
>  }
>  
>  void rx_cpu_list(void)
>  {
> -    GSList *list;
> -    list = object_class_get_list_sorted(TYPE_RXCPU, false);
> +    GSList *list = object_class_get_list_sorted(TYPE_RX_CPU, false);
> +
> +    qemu_printf("Available CPUs:\n");
>      g_slist_foreach(list, rx_cpu_list_entry, NULL);
>      g_slist_free(list);
>  }
> @@ -88,15 +89,17 @@ void rx_cpu_list(void)
>  static ObjectClass *rx_cpu_class_by_name(const char cpu_model)
>  {
>      ObjectClass *oc;
> -    char *typename = NULL;
> +    char *typename;
>  
> -    typename = g_strdup_printf(RX_CPU_TYPE_NAME(""));
> +    typename = g_strdup_printf(RX_CPU_TYPE_NAME("%s"), cpu_model);
>      oc = object_class_by_name(typename);

in case of new cpu, I'd allow only typename as cpu_model

s/typename/cpu_model/
  
which is compatible with '-device' naming and QMP/monitor interfaces
that we support.

and I would not add other naming schemes /like adding suffix to cpu_model or .../
that  are existing in QEMU for legacy reasons.


> -    if (oc != NULL && object_class_is_abstract(oc)) {
> -        oc = NULL;
> -    }
> -
>      g_free(typename);
> +
> +    if (oc == NULL ||
> +        object_class_is_abstract(oc) ||
> +        !object_class_dynamic_cast(oc, TYPE_RX_CPU)) {
> +        return NULL;
> +    }
>      return oc;
>  }
>  
[...]




  reply	other threads:[~2019-05-31 14:25 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-31 13:42 [Qemu-devel] [PATCH v16 00/23] Add RX architecture Richard Henderson
2019-05-31 13:42 ` [Qemu-devel] [PATCH v16 01/23] target/rx: TCG translation Richard Henderson
2019-05-31 13:42 ` [Qemu-devel] [PATCH v16 02/23] target/rx: TCG helper Richard Henderson
2019-05-31 13:42 ` [Qemu-devel] [PATCH v16 03/23] target/rx: CPU definition Richard Henderson
2019-05-31 13:42 ` [Qemu-devel] [PATCH v16 04/23] target/rx: RX disassembler Richard Henderson
2019-05-31 13:42 ` [Qemu-devel] [PATCH v16 05/23] hw/intc: RX62N interrupt controller (ICUa) Richard Henderson
2019-05-31 13:42 ` [Qemu-devel] [PATCH v16 06/23] hw/timer: RX62N internal timer modules Richard Henderson
2019-05-31 13:42 ` [Qemu-devel] [PATCH v16 07/23] hw/char: RX62N serial communication interface (SCI) Richard Henderson
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 08/23] hw/rx: RX Target hardware definition Richard Henderson
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 09/23] qemu/bitops.h: Add extract8 and extract16 Richard Henderson
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 10/23] hw/registerfields.h: Add 8bit and 16bit register macros Richard Henderson
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 11/23] target/rx: Convert to CPUClass::tlb_fill Richard Henderson
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 12/23] target/rx: Add RX to SysEmuTarget Richard Henderson
2019-06-04  5:32   ` Philippe Mathieu-Daudé
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 13/23] target/rx: Fix cpu types and names Richard Henderson
2019-05-31 14:23   ` Igor Mammedov [this message]
2019-05-31 14:59     ` Richard Henderson
2019-05-31 15:15       ` Igor Mammedov
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 14/23] tests: Add rx to machine-none-test.c Richard Henderson
2019-06-04  5:33   ` Philippe Mathieu-Daudé
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 15/23] hw/rx: Honor -accel qtest Richard Henderson
2019-06-04  5:34   ` Philippe Mathieu-Daudé
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 16/23] Add rx-softmmu Richard Henderson
2019-06-04  6:38   ` Philippe Mathieu-Daudé
2019-06-04 14:25     ` Richard Henderson
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 17/23] MAINTAINERS: Add RX Richard Henderson
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 18/23] target/rx: Disassemble rx_index_addr into a string Richard Henderson
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 19/23] target/rx: Replace operand with prt_ldmi in disassembler Richard Henderson
2019-06-04  5:37   ` Philippe Mathieu-Daudé
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 20/23] target/rx: Use prt_ldmi for XCHG_mr disassembly Richard Henderson
2019-06-04  5:38   ` Philippe Mathieu-Daudé
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 21/23] target/rx: Emit all disassembly in one prt() Richard Henderson
2019-06-04  5:36   ` Philippe Mathieu-Daudé
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 22/23] target/rx: Collect all bytes during disassembly Richard Henderson
2019-06-04  5:41   ` Philippe Mathieu-Daudé
2019-05-31 13:43 ` [Qemu-devel] [PATCH v16 23/23] target/rx: Dump bytes for each insn " Richard Henderson
2019-06-04  5:35   ` Philippe Mathieu-Daudé
2019-05-31 14:12 ` [Qemu-devel] [PATCH v16 00/23] Add RX architecture no-reply
2019-06-04  5:23 ` 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=20190531162341.3743eb45@redhat.com \
    --to=imammedo@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=ysato@users.sourceforge.jp \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.