For now, we keep the global cpu_get_dump_info symbol defined.
Signed-off-by: Pierrick Bouvier <[email protected]>
---
target/loongarch/arch_dump.c | 15 +++++++++++++--
target/loongarch/cpu.c | 1 +
target/loongarch/internals.h | 2 ++
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/target/loongarch/arch_dump.c b/target/loongarch/arch_dump.c
index 9d84faef969..83829a96875 100644
--- a/target/loongarch/arch_dump.c
+++ b/target/loongarch/arch_dump.c
@@ -22,6 +22,7 @@
#include "elf.h"
#include "system/dump.h"
#include "internals.h"
+#include "hw/core/dump-cpu-ops.h"
/* struct user_pt_regs from arch/loongarch/include/uapi/asm/ptrace.h */
struct loongarch_user_regs {
@@ -142,8 +143,8 @@ int loongarch_cpu_write_elf64_note(WriteCoreDumpFunction f,
CPUState *cs,
return ret;
}
-int cpu_get_dump_info(ArchDumpInfo *info,
- const GuestPhysBlockList *guest_phys_blocks)
+static int loongarch_get_dump_info(const CPUState *cs, ArchDumpInfo *info,
+ const GuestPhysBlockList *guest_phys_blocks)
{
info->d_machine = EM_LOONGARCH;
info->d_endian = ELFDATA2LSB;
@@ -152,6 +153,16 @@ int cpu_get_dump_info(ArchDumpInfo *info,
return 0;
}
+const DumpCPUOps loongarch_dump_ops = {
+ .get_dump_info = loongarch_get_dump_info,
+};
+
+int cpu_get_dump_info(ArchDumpInfo *info,
+ const GuestPhysBlockList *guest_phys_blocks)
+{
+ return loongarch_get_dump_info(first_cpu, info, guest_phys_blocks);
+}
+
ssize_t cpu_get_note_size(int class, int machine, int nr_cpus)
{
size_t note_size = 0;
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index 54c26998979..99b5ab59e00 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -882,6 +882,7 @@ static void loongarch_cpu_class_init(ObjectClass *c, const
void *data)
cc->get_arch_id = loongarch_cpu_get_arch_id;
dc->vmsd = &vmstate_loongarch_cpu;
cc->sysemu_ops = &loongarch_sysemu_ops;
+ cc->dump_ops = &loongarch_dump_ops;
#endif
cc->disas_set_info = loongarch_cpu_disas_set_info;
cc->gdb_read_register = loongarch_cpu_gdb_read_register;
diff --git a/target/loongarch/internals.h b/target/loongarch/internals.h
index ff956823fd7..fac3ccd2afb 100644
--- a/target/loongarch/internals.h
+++ b/target/loongarch/internals.h
@@ -51,4 +51,6 @@ void loongarch_cpu_register_gdb_regs_for_features(CPUState
*cs);
int loongarch_cpu_write_elf64_note(WriteCoreDumpFunction f, CPUState *cpu,
int cpuid, DumpState *s);
+extern const struct DumpCPUOps loongarch_dump_ops;
+
#endif
--
2.43.0