diff mbox series

[v2,7/9] gdbstub: Make get cpu and hex conversion functions non-internal

Message ID 20240613172103.2987519-8-gustavo.romero@linaro.org (mailing list archive)
State New
Headers show
Series Add MTE stubs for aarch64 user mode | expand

Commit Message

Gustavo Romero June 13, 2024, 5:21 p.m. UTC
Make the gdb_first_attached_cpu and gdb_hextomem non-internal so they
are not confined to use only in gdbstub.c.

Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
---
 gdbstub/internals.h        | 2 --
 include/exec/gdbstub.h     | 5 +++++
 include/gdbstub/commands.h | 6 ++++++
 3 files changed, 11 insertions(+), 2 deletions(-)

Comments

Alex Bennée June 14, 2024, 11:34 a.m. UTC | #1
Gustavo Romero <gustavo.romero@linaro.org> writes:

> Make the gdb_first_attached_cpu and gdb_hextomem non-internal so they
> are not confined to use only in gdbstub.c.

so they can be used by architecture extensions to the gdbstub?

we don't want everyone using these functions, or if we do maybe we
should consider moving them to cutils?

Otherwise:

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


>
> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
> ---
>  gdbstub/internals.h        | 2 --
>  include/exec/gdbstub.h     | 5 +++++
>  include/gdbstub/commands.h | 6 ++++++
>  3 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/gdbstub/internals.h b/gdbstub/internals.h
> index 34121dc61a..81875abf5f 100644
> --- a/gdbstub/internals.h
> +++ b/gdbstub/internals.h
> @@ -107,7 +107,6 @@ static inline int tohex(int v)
>  
>  void gdb_put_strbuf(void);
>  int gdb_put_packet_binary(const char *buf, int len, bool dump);
> -void gdb_hextomem(GByteArray *mem, const char *buf, int len);
>  void gdb_memtohex(GString *buf, const uint8_t *mem, int len);
>  void gdb_memtox(GString *buf, const char *mem, int len);
>  void gdb_read_byte(uint8_t ch);
> @@ -130,7 +129,6 @@ bool gdb_got_immediate_ack(void);
>  /* utility helpers */
>  GDBProcess *gdb_get_process(uint32_t pid);
>  CPUState *gdb_get_first_cpu_in_process(GDBProcess *process);
> -CPUState *gdb_first_attached_cpu(void);
>  void gdb_append_thread_id(CPUState *cpu, GString *buf);
>  int gdb_get_cpu_index(CPUState *cpu);
>  unsigned int gdb_get_max_cpus(void); /* both */
> diff --git a/include/exec/gdbstub.h b/include/exec/gdbstub.h
> index 1bd2c4ec2a..77e5ec9a5b 100644
> --- a/include/exec/gdbstub.h
> +++ b/include/exec/gdbstub.h
> @@ -135,4 +135,9 @@ void gdb_set_stop_cpu(CPUState *cpu);
>  /* in gdbstub-xml.c, generated by scripts/feature_to_c.py */
>  extern const GDBFeature gdb_static_features[];
>  
> +/**
> + * Return the first attached CPU
> + */
> +CPUState *gdb_first_attached_cpu(void);
> +
>  #endif /* GDBSTUB_H */
> diff --git a/include/gdbstub/commands.h b/include/gdbstub/commands.h
> index 2204c3ddbe..914b6d7313 100644
> --- a/include/gdbstub/commands.h
> +++ b/include/gdbstub/commands.h
> @@ -93,4 +93,10 @@ void gdb_extend_set_table(GdbCmdParseEntry *table, int size);
>   */
>  void gdb_extend_qsupported_features(char *qsupported_features);
>  
> +/**
> + * Convert a hex string to bytes. Conversion is done per byte, so 2 hex digits
> + * are converted to 1 byte. Invalid hex digits are treated as 0 digits.
> + */
> +void gdb_hextomem(GByteArray *mem, const char *buf, int len);
> +
>  #endif /* GDBSTUB_COMMANDS_H */
diff mbox series

Patch

diff --git a/gdbstub/internals.h b/gdbstub/internals.h
index 34121dc61a..81875abf5f 100644
--- a/gdbstub/internals.h
+++ b/gdbstub/internals.h
@@ -107,7 +107,6 @@  static inline int tohex(int v)
 
 void gdb_put_strbuf(void);
 int gdb_put_packet_binary(const char *buf, int len, bool dump);
-void gdb_hextomem(GByteArray *mem, const char *buf, int len);
 void gdb_memtohex(GString *buf, const uint8_t *mem, int len);
 void gdb_memtox(GString *buf, const char *mem, int len);
 void gdb_read_byte(uint8_t ch);
@@ -130,7 +129,6 @@  bool gdb_got_immediate_ack(void);
 /* utility helpers */
 GDBProcess *gdb_get_process(uint32_t pid);
 CPUState *gdb_get_first_cpu_in_process(GDBProcess *process);
-CPUState *gdb_first_attached_cpu(void);
 void gdb_append_thread_id(CPUState *cpu, GString *buf);
 int gdb_get_cpu_index(CPUState *cpu);
 unsigned int gdb_get_max_cpus(void); /* both */
diff --git a/include/exec/gdbstub.h b/include/exec/gdbstub.h
index 1bd2c4ec2a..77e5ec9a5b 100644
--- a/include/exec/gdbstub.h
+++ b/include/exec/gdbstub.h
@@ -135,4 +135,9 @@  void gdb_set_stop_cpu(CPUState *cpu);
 /* in gdbstub-xml.c, generated by scripts/feature_to_c.py */
 extern const GDBFeature gdb_static_features[];
 
+/**
+ * Return the first attached CPU
+ */
+CPUState *gdb_first_attached_cpu(void);
+
 #endif /* GDBSTUB_H */
diff --git a/include/gdbstub/commands.h b/include/gdbstub/commands.h
index 2204c3ddbe..914b6d7313 100644
--- a/include/gdbstub/commands.h
+++ b/include/gdbstub/commands.h
@@ -93,4 +93,10 @@  void gdb_extend_set_table(GdbCmdParseEntry *table, int size);
  */
 void gdb_extend_qsupported_features(char *qsupported_features);
 
+/**
+ * Convert a hex string to bytes. Conversion is done per byte, so 2 hex digits
+ * are converted to 1 byte. Invalid hex digits are treated as 0 digits.
+ */
+void gdb_hextomem(GByteArray *mem, const char *buf, int len);
+
 #endif /* GDBSTUB_COMMANDS_H */