aboutsummaryrefslogtreecommitdiff
path: root/hw/core
diff options
context:
space:
mode:
authorAkihiko Odaki <akihiko.odaki@daynix.com>2024-02-27 14:43:17 +0000
committerAlex Bennée <alex.bennee@linaro.org>2024-02-28 09:09:55 +0000
commitee59fa1dd57bac8ba8c81e02f2710ba08d1aa49d (patch)
treea7587e20ee6589a1cb0e1e3e0f670f725e81431c /hw/core
parent66260159a72ecd6c384197ba3d6e6f660ca5b482 (diff)
downloadqemu-ee59fa1dd57bac8ba8c81e02f2710ba08d1aa49d.zip
qemu-ee59fa1dd57bac8ba8c81e02f2710ba08d1aa49d.tar.gz
qemu-ee59fa1dd57bac8ba8c81e02f2710ba08d1aa49d.tar.bz2
gdbstub: Simplify XML lookup
Now we know all instances of GDBFeature that is used in CPU so we can traverse them to find XML. This removes the need for a CPU-specific lookup function for dynamic XMLs. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20231213-gdb-v17-7-777047380591@daynix.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20240227144335.1196131-12-alex.bennee@linaro.org>
Diffstat (limited to 'hw/core')
-rw-r--r--hw/core/cpu-common.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/core/cpu-common.c b/hw/core/cpu-common.c
index 67db077..fe16d0d 100644
--- a/hw/core/cpu-common.c
+++ b/hw/core/cpu-common.c
@@ -27,6 +27,7 @@
#include "qemu/main-loop.h"
#include "exec/log.h"
#include "exec/cpu-common.h"
+#include "exec/gdbstub.h"
#include "qemu/error-report.h"
#include "qemu/qemu-print.h"
#include "sysemu/tcg.h"
@@ -240,11 +241,10 @@ static void cpu_common_unrealizefn(DeviceState *dev)
static void cpu_common_initfn(Object *obj)
{
CPUState *cpu = CPU(obj);
- CPUClass *cc = CPU_GET_CLASS(obj);
+ gdb_init_cpu(cpu);
cpu->cpu_index = UNASSIGNED_CPU_INDEX;
cpu->cluster_index = UNASSIGNED_CLUSTER_INDEX;
- cpu->gdb_num_regs = cpu->gdb_num_g_regs = cc->gdb_num_core_regs;
/* user-mode doesn't have configurable SMP topology */
/* the default value is changed by qemu_init_vcpu() for system-mode */
cpu->nr_cores = 1;
@@ -264,6 +264,7 @@ static void cpu_common_finalize(Object *obj)
{
CPUState *cpu = CPU(obj);
+ g_array_free(cpu->gdb_regs, TRUE);
qemu_lockcnt_destroy(&cpu->in_ioctl_lock);
qemu_mutex_destroy(&cpu->work_mutex);
}