mirror of https://github.com/xemu-project/xemu.git
hw/core/cpu: Return static value with gdb_arch_name()
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> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20230912224107.29669-8-akihiko.odaki@daynix.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20231009164104.369749-15-alex.bennee@linaro.org>
This commit is contained in:
parent
48de646280
commit
a650683871
|
@ -380,10 +380,9 @@ static const char *get_feature_xml(const char *p, const char **newp,
|
||||||
"<target>");
|
"<target>");
|
||||||
|
|
||||||
if (cc->gdb_arch_name) {
|
if (cc->gdb_arch_name) {
|
||||||
g_autofree gchar *arch = cc->gdb_arch_name(cpu);
|
|
||||||
g_string_append_printf(xml,
|
g_string_append_printf(xml,
|
||||||
"<architecture>%s</architecture>",
|
"<architecture>%s</architecture>",
|
||||||
arch);
|
cc->gdb_arch_name(cpu));
|
||||||
}
|
}
|
||||||
g_string_append(xml, "<xi:include href=\"");
|
g_string_append(xml, "<xi:include href=\"");
|
||||||
g_string_append(xml, cc->gdb_core_xml_file);
|
g_string_append(xml, cc->gdb_core_xml_file);
|
||||||
|
|
|
@ -165,7 +165,7 @@ struct CPUClass {
|
||||||
vaddr (*gdb_adjust_breakpoint)(CPUState *cpu, vaddr addr);
|
vaddr (*gdb_adjust_breakpoint)(CPUState *cpu, vaddr addr);
|
||||||
|
|
||||||
const char *gdb_core_xml_file;
|
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);
|
const char * (*gdb_get_dynamic_xml)(CPUState *cpu, const char *xmlname);
|
||||||
|
|
||||||
void (*disas_set_info)(CPUState *cpu, disassemble_info *info);
|
void (*disas_set_info)(CPUState *cpu, disassemble_info *info);
|
||||||
|
|
|
@ -2319,15 +2319,15 @@ static Property arm_cpu_properties[] = {
|
||||||
DEFINE_PROP_END_OF_LIST()
|
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);
|
ARMCPU *cpu = ARM_CPU(cs);
|
||||||
CPUARMState *env = &cpu->env;
|
CPUARMState *env = &cpu->env;
|
||||||
|
|
||||||
if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
|
if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
|
||||||
return g_strdup("iwmmxt");
|
return "iwmmxt";
|
||||||
}
|
}
|
||||||
return g_strdup("arm");
|
return "arm";
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
|
|
@ -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)
|
static void aarch64_cpu_class_init(ObjectClass *oc, void *data)
|
||||||
|
|
|
@ -5916,12 +5916,12 @@ static void x86_cpu_load_model(X86CPU *cpu, X86CPUModel *model)
|
||||||
memset(&env->user_features, 0, sizeof(env->user_features));
|
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
|
#ifdef TARGET_X86_64
|
||||||
return g_strdup("i386:x86-64");
|
return "i386:x86-64";
|
||||||
#else
|
#else
|
||||||
return g_strdup("i386");
|
return "i386";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -766,9 +766,9 @@ static void loongarch_cpu_class_init(ObjectClass *c, void *data)
|
||||||
#endif
|
#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)
|
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;
|
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)
|
static void loongarch64_cpu_class_init(ObjectClass *c, void *data)
|
||||||
|
|
|
@ -589,12 +589,12 @@ static int gdb_set_vsx_reg(CPUPPCState *env, uint8_t *mem_buf, int n)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
gchar *ppc_gdb_arch_name(CPUState *cs)
|
const gchar *ppc_gdb_arch_name(CPUState *cs)
|
||||||
{
|
{
|
||||||
#if defined(TARGET_PPC64)
|
#if defined(TARGET_PPC64)
|
||||||
return g_strdup("powerpc:common64");
|
return "powerpc:common64";
|
||||||
#else
|
#else
|
||||||
return g_strdup("powerpc:common");
|
return "powerpc:common";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -221,7 +221,7 @@ void destroy_ppc_opcodes(PowerPCCPU *cpu);
|
||||||
|
|
||||||
/* gdbstub.c */
|
/* gdbstub.c */
|
||||||
void ppc_gdb_init(CPUState *cs, PowerPCCPUClass *ppc);
|
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:
|
* prot_for_access_type:
|
||||||
|
|
|
@ -2004,17 +2004,17 @@ static Property riscv_cpu_properties[] = {
|
||||||
DEFINE_PROP_END_OF_LIST(),
|
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);
|
RISCVCPU *cpu = RISCV_CPU(cs);
|
||||||
CPURISCVState *env = &cpu->env;
|
CPURISCVState *env = &cpu->env;
|
||||||
|
|
||||||
switch (riscv_cpu_mxl(env)) {
|
switch (riscv_cpu_mxl(env)) {
|
||||||
case MXL_RV32:
|
case MXL_RV32:
|
||||||
return g_strdup("riscv:rv32");
|
return "riscv:rv32";
|
||||||
case MXL_RV64:
|
case MXL_RV64:
|
||||||
case MXL_RV128:
|
case MXL_RV128:
|
||||||
return g_strdup("riscv:rv64");
|
return "riscv:rv64";
|
||||||
default:
|
default:
|
||||||
g_assert_not_reached();
|
g_assert_not_reached();
|
||||||
}
|
}
|
||||||
|
|
|
@ -282,9 +282,9 @@ static void s390_cpu_initfn(Object *obj)
|
||||||
#endif
|
#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[] = {
|
static Property s390x_cpu_properties[] = {
|
||||||
|
|
|
@ -29,9 +29,9 @@ static inline void set_feature(CPUTriCoreState *env, int feature)
|
||||||
env->features |= 1ULL << 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)
|
static void tricore_cpu_set_pc(CPUState *cs, vaddr value)
|
||||||
|
|
Loading…
Reference in New Issue