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


Reply via email to