[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 14/25] hw/core/cpu: Return static value with gdb_arch_name()
From: |
Alistair Francis |
Subject: |
Re: [PATCH 14/25] hw/core/cpu: Return static value with gdb_arch_name() |
Date: |
Wed, 11 Oct 2023 10:55:31 +1000 |
On Tue, Oct 10, 2023 at 2:44 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>
> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>
> All implementations of gdb_arch_name() returns dynamic duplicates of
> static strings. It's also unlikely that there will be an implementation
> of gdb_arch_name() that returns a truly dynamic value due to the nature
> of the function returning a well-known identifiers. Qualify the value
> gdb_arch_name() with const and make all of its implementations return
> static strings.
>
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> Message-Id: <20230912224107.29669-8-akihiko.odaki@daynix.com>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> include/hw/core/cpu.h | 2 +-
> target/ppc/internal.h | 2 +-
> gdbstub/gdbstub.c | 3 +--
> target/arm/cpu.c | 6 +++---
> target/arm/cpu64.c | 4 ++--
> target/i386/cpu.c | 6 +++---
> target/loongarch/cpu.c | 8 ++++----
> target/ppc/gdbstub.c | 6 +++---
> target/riscv/cpu.c | 6 +++---
> target/s390x/cpu.c | 4 ++--
> target/tricore/cpu.c | 4 ++--
> 11 files changed, 25 insertions(+), 26 deletions(-)
>
> diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
> index e02bc5980f..7b8347ed5a 100644
> --- a/include/hw/core/cpu.h
> +++ b/include/hw/core/cpu.h
> @@ -165,7 +165,7 @@ struct CPUClass {
> vaddr (*gdb_adjust_breakpoint)(CPUState *cpu, vaddr addr);
>
> const char *gdb_core_xml_file;
> - gchar * (*gdb_arch_name)(CPUState *cpu);
> + const gchar * (*gdb_arch_name)(CPUState *cpu);
> const char * (*gdb_get_dynamic_xml)(CPUState *cpu, const char *xmlname);
>
> void (*disas_set_info)(CPUState *cpu, disassemble_info *info);
> diff --git a/target/ppc/internal.h b/target/ppc/internal.h
> index 15803bc313..c881c67a8b 100644
> --- a/target/ppc/internal.h
> +++ b/target/ppc/internal.h
> @@ -221,7 +221,7 @@ void destroy_ppc_opcodes(PowerPCCPU *cpu);
>
> /* gdbstub.c */
> void ppc_gdb_init(CPUState *cs, PowerPCCPUClass *ppc);
> -gchar *ppc_gdb_arch_name(CPUState *cs);
> +const gchar *ppc_gdb_arch_name(CPUState *cs);
>
> /**
> * prot_for_access_type:
> diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c
> index bba2640293..a20169c27b 100644
> --- a/gdbstub/gdbstub.c
> +++ b/gdbstub/gdbstub.c
> @@ -380,10 +380,9 @@ static const char *get_feature_xml(const char *p, const
> char **newp,
> "<target>");
>
> if (cc->gdb_arch_name) {
> - g_autofree gchar *arch = cc->gdb_arch_name(cpu);
> g_string_append_printf(xml,
> "<architecture>%s</architecture>",
> - arch);
> + cc->gdb_arch_name(cpu));
> }
> g_string_append(xml, "<xi:include href=\"");
> g_string_append(xml, cc->gdb_core_xml_file);
> diff --git a/target/arm/cpu.c b/target/arm/cpu.c
> index b65e8cfea3..6c6c551573 100644
> --- a/target/arm/cpu.c
> +++ b/target/arm/cpu.c
> @@ -2319,15 +2319,15 @@ static Property arm_cpu_properties[] = {
> DEFINE_PROP_END_OF_LIST()
> };
>
> -static gchar *arm_gdb_arch_name(CPUState *cs)
> +static const gchar *arm_gdb_arch_name(CPUState *cs)
> {
> ARMCPU *cpu = ARM_CPU(cs);
> CPUARMState *env = &cpu->env;
>
> if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
> - return g_strdup("iwmmxt");
> + return "iwmmxt";
> }
> - return g_strdup("arm");
> + return "arm";
> }
>
> #ifndef CONFIG_USER_ONLY
> diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
> index 811f3b38c2..1cb9d5b81a 100644
> --- a/target/arm/cpu64.c
> +++ b/target/arm/cpu64.c
> @@ -781,9 +781,9 @@ static void aarch64_cpu_finalizefn(Object *obj)
> {
> }
>
> -static gchar *aarch64_gdb_arch_name(CPUState *cs)
> +static const gchar *aarch64_gdb_arch_name(CPUState *cs)
> {
> - return g_strdup("aarch64");
> + return "aarch64";
> }
>
> static void aarch64_cpu_class_init(ObjectClass *oc, void *data)
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 9fad31b8db..c09bab4281 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -5915,12 +5915,12 @@ static void x86_cpu_load_model(X86CPU *cpu,
> X86CPUModel *model)
> memset(&env->user_features, 0, sizeof(env->user_features));
> }
>
> -static gchar *x86_gdb_arch_name(CPUState *cs)
> +static const gchar *x86_gdb_arch_name(CPUState *cs)
> {
> #ifdef TARGET_X86_64
> - return g_strdup("i386:x86-64");
> + return "i386:x86-64";
> #else
> - return g_strdup("i386");
> + return "i386";
> #endif
> }
>
> diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
> index 2bea7ca5d5..ef1bf89dac 100644
> --- a/target/loongarch/cpu.c
> +++ b/target/loongarch/cpu.c
> @@ -766,9 +766,9 @@ static void loongarch_cpu_class_init(ObjectClass *c, void
> *data)
> #endif
> }
>
> -static gchar *loongarch32_gdb_arch_name(CPUState *cs)
> +static const gchar *loongarch32_gdb_arch_name(CPUState *cs)
> {
> - return g_strdup("loongarch32");
> + return "loongarch32";
> }
>
> static void loongarch32_cpu_class_init(ObjectClass *c, void *data)
> @@ -780,9 +780,9 @@ static void loongarch32_cpu_class_init(ObjectClass *c,
> void *data)
> cc->gdb_arch_name = loongarch32_gdb_arch_name;
> }
>
> -static gchar *loongarch64_gdb_arch_name(CPUState *cs)
> +static const gchar *loongarch64_gdb_arch_name(CPUState *cs)
> {
> - return g_strdup("loongarch64");
> + return "loongarch64";
> }
>
> static void loongarch64_cpu_class_init(ObjectClass *c, void *data)
> diff --git a/target/ppc/gdbstub.c b/target/ppc/gdbstub.c
> index 2ad11510bf..778ef73bd7 100644
> --- a/target/ppc/gdbstub.c
> +++ b/target/ppc/gdbstub.c
> @@ -589,12 +589,12 @@ static int gdb_set_vsx_reg(CPUPPCState *env, uint8_t
> *mem_buf, int n)
> return 0;
> }
>
> -gchar *ppc_gdb_arch_name(CPUState *cs)
> +const gchar *ppc_gdb_arch_name(CPUState *cs)
> {
> #if defined(TARGET_PPC64)
> - return g_strdup("powerpc:common64");
> + return "powerpc:common64";
> #else
> - return g_strdup("powerpc:common");
> + return "powerpc:common";
> #endif
> }
>
> diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
> index ac2b94b6a6..f5572704de 100644
> --- a/target/riscv/cpu.c
> +++ b/target/riscv/cpu.c
> @@ -2004,17 +2004,17 @@ static Property riscv_cpu_properties[] = {
> DEFINE_PROP_END_OF_LIST(),
> };
>
> -static gchar *riscv_gdb_arch_name(CPUState *cs)
> +static const gchar *riscv_gdb_arch_name(CPUState *cs)
> {
> RISCVCPU *cpu = RISCV_CPU(cs);
> CPURISCVState *env = &cpu->env;
>
> switch (riscv_cpu_mxl(env)) {
> case MXL_RV32:
> - return g_strdup("riscv:rv32");
> + return "riscv:rv32";
> case MXL_RV64:
> case MXL_RV128:
> - return g_strdup("riscv:rv64");
> + return "riscv:rv64";
> default:
> g_assert_not_reached();
> }
> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
> index 4f7599d72c..6093ab0a12 100644
> --- a/target/s390x/cpu.c
> +++ b/target/s390x/cpu.c
> @@ -282,9 +282,9 @@ static void s390_cpu_initfn(Object *obj)
> #endif
> }
>
> -static gchar *s390_gdb_arch_name(CPUState *cs)
> +static const gchar *s390_gdb_arch_name(CPUState *cs)
> {
> - return g_strdup("s390:64-bit");
> + return "s390:64-bit";
> }
>
> static Property s390x_cpu_properties[] = {
> diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c
> index d1477622e6..5ca666ee12 100644
> --- a/target/tricore/cpu.c
> +++ b/target/tricore/cpu.c
> @@ -29,9 +29,9 @@ static inline void set_feature(CPUTriCoreState *env, int
> feature)
> env->features |= 1ULL << feature;
> }
>
> -static gchar *tricore_gdb_arch_name(CPUState *cs)
> +static const gchar *tricore_gdb_arch_name(CPUState *cs)
> {
> - return g_strdup("tricore");
> + return "tricore";
> }
>
> static void tricore_cpu_set_pc(CPUState *cs, vaddr value)
> --
> 2.39.2
>
>
- Re: [PATCH 08/25] gdbstub: Fix target_xml initialization, (continued)
- [PATCH 10/25] plugins: Check if vCPU is realized, Alex Bennée, 2023/10/09
- [PATCH 06/25] configure: allow user to override docker engine, Alex Bennée, 2023/10/09
- [PATCH 05/25] tests/docker: make docker engine choice entirely configure driven, Alex Bennée, 2023/10/09
- [PATCH 07/25] configure: remove gcc version suffixes, Alex Bennée, 2023/10/09
- [PATCH 09/25] gdbstub: Fix target.xml response, Alex Bennée, 2023/10/09
- [PATCH 14/25] hw/core/cpu: Return static value with gdb_arch_name(), Alex Bennée, 2023/10/09
- Re: [PATCH 14/25] hw/core/cpu: Return static value with gdb_arch_name(),
Alistair Francis <=
- [PATCH 13/25] target/arm: Move the reference to arm-core.xml, Alex Bennée, 2023/10/09
- [PATCH 23/25] contrib/plugins: fix coverity warning in cache, Alex Bennée, 2023/10/09
- [PATCH 11/25] contrib/plugins: Use GRWLock in execlog, Alex Bennée, 2023/10/09
- [PATCH 12/25] gdbstub: Introduce GDBFeature structure, Alex Bennée, 2023/10/09
- [PATCH 25/25] contrib/plugins: fix coverity warning in hotblocks, Alex Bennée, 2023/10/09
- [PATCH 19/25] gdbstub: Replace gdb_regs with an array, Alex Bennée, 2023/10/09
- [PATCH 22/25] plugins: Set final instruction count in plugin_gen_tb_end, Alex Bennée, 2023/10/09
- [PATCH 15/25] gdbstub: Use g_markup_printf_escaped(), Alex Bennée, 2023/10/09