All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Akihiko Odaki <akihiko.odaki@daynix.com>
Cc: "Mikhail Tyutin" <m.tyutin@yadro.com>,
	"Aleksandr Anenkov" <a.anenkov@yadro.com>,
	qemu-devel@nongnu.org,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Richard Henderson" <richard.henderson@linaro.org>
Subject: Re: [PATCH v9 06/23] gdbstub: Introduce GDBFeatureBuilder
Date: Wed, 11 Oct 2023 16:39:12 +0100	[thread overview]
Message-ID: <87r0m1noy2.fsf@linaro.org> (raw)
In-Reply-To: <20231011070335.14398-7-akihiko.odaki@daynix.com>


Akihiko Odaki <akihiko.odaki@daynix.com> writes:

> GDBFeatureBuilder unifies the logic to generate dynamic GDBFeature.
>
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  include/exec/gdbstub.h | 20 ++++++++++++++
>  gdbstub/gdbstub.c      | 59 ++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 79 insertions(+)
>
> diff --git a/include/exec/gdbstub.h b/include/exec/gdbstub.h
> index 071021415a..d9ef2ccbff 100644
> --- a/include/exec/gdbstub.h
> +++ b/include/exec/gdbstub.h
> @@ -16,6 +16,11 @@ typedef struct GDBFeature {
>      int num_regs;
>  } GDBFeature;
>  
> +typedef struct GDBFeatureBuilder {
> +    GDBFeature *feature;
> +    GPtrArray *xml;
> +} GDBFeatureBuilder;
> +
>  
>  /* Get or set a register.  Returns the size of the register.  */
>  typedef int (*gdb_get_reg_cb)(CPUArchState *env, GByteArray *buf, int reg);
> @@ -44,6 +49,21 @@ void gdb_register_coprocessor(CPUState *cpu,
>   */
>  int gdbserver_start(const char *port_or_device);
>  
> +void gdb_feature_builder_init(GDBFeatureBuilder *builder, GDBFeature *feature,
> +                              const char *name, const char *xmlname);
> +
> +void gdb_feature_builder_append_tag(const GDBFeatureBuilder *builder,
> +                                    const char *format, ...)
> +    G_GNUC_PRINTF(2, 3);

minor nit: it might be cleaner to put this declaration before the name,
i.e.:

  void G_GNUC_PRINTF(2, 3)
  gdb_feature_builder_append_tag(const GDBFeatureBuilder *builder,
                                 const char *format, ...);

but the existing code base is pretty random in where it puts these
declarations so *shrug*.

<snip>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


  reply	other threads:[~2023-10-11 15:45 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-11  7:02 [PATCH v9 00/23] plugins: Allow to read registers Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 01/23] target/riscv: Move MISA limits to class Akihiko Odaki
2023-10-11 15:23   ` Alex Bennée
2023-10-12  6:01     ` Akihiko Odaki
2023-10-11 16:04   ` Alex Bennée
2023-10-12 19:10   ` Daniel Henrique Barboza
2023-10-12 21:04     ` Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 02/23] target/riscv: Remove misa_mxl validation Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 03/23] target/riscv: Validate misa_mxl_max only once Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 04/23] gdbstub: Add num_regs member to GDBFeature Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 05/23] gdbstub: Introduce gdb_find_static_feature() Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 06/23] gdbstub: Introduce GDBFeatureBuilder Akihiko Odaki
2023-10-11 15:39   ` Alex Bennée [this message]
2023-10-11  7:02 ` [PATCH v9 07/23] target/arm: Use GDBFeature for dynamic XML Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 08/23] target/ppc: " Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 09/23] target/riscv: " Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 10/23] gdbstub: Use GDBFeature for gdb_register_coprocessor Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 11/23] gdbstub: Use GDBFeature for GDBRegisterState Akihiko Odaki
2023-10-11 15:57   ` Alex Bennée
2023-10-11  7:02 ` [PATCH v9 12/23] gdbstub: Change gdb_get_reg_cb and gdb_set_reg_cb Akihiko Odaki
2023-10-11  7:02 ` [PATCH v9 13/23] gdbstub: Simplify XML lookup Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 14/23] gdbstub: Infer number of core registers from XML Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 15/23] hw/core/cpu: Remove gdb_get_dynamic_xml member Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 16/23] gdbstub: Add members to identify registers to GDBFeature Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 17/23] gdbstub: Expose functions to read registers Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 18/23] cpu: Call plugin hooks only when ready Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 19/23] plugins: Remove an extra parameter Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 20/23] plugins: Use different helpers when reading registers Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 21/23] plugins: Allow to read registers Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 22/23] contrib/plugins: Allow to log registers Akihiko Odaki
2023-10-11  7:03 ` [PATCH v9 23/23] plugins: Support C++ Akihiko Odaki
2023-10-11  8:51   ` Daniel P. Berrangé
2023-10-11 15:48     ` Akihiko Odaki
2023-10-11 16:21       ` Thomas Huth
2023-10-11 16:42         ` Akihiko Odaki
2023-10-11 16:53           ` Daniel P. Berrangé

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=87r0m1noy2.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=a.anenkov@yadro.com \
    --cc=akihiko.odaki@daynix.com \
    --cc=m.tyutin@yadro.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /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.