For now, we keep the global cpu_get_dump_info symbol defined.
Reviewed-by: Anton Johansson <[email protected]>
Signed-off-by: Pierrick Bouvier <[email protected]>
---
target/riscv/arch_dump.c | 25 +++++++++++++++----------
target/riscv/cpu.c | 1 +
target/riscv/internals.h | 2 ++
3 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/target/riscv/arch_dump.c b/target/riscv/arch_dump.c
index 12b68799070..6562c32cfca 100644
--- a/target/riscv/arch_dump.c
+++ b/target/riscv/arch_dump.c
@@ -20,6 +20,7 @@
#include "cpu.h"
#include "elf.h"
#include "system/dump.h"
+#include "internals.h"
/* struct user_regs_struct from arch/riscv/include/uapi/asm/ptrace.h */
struct riscv64_user_regs {
@@ -161,17 +162,11 @@ int riscv_cpu_write_elf32_note(WriteCoreDumpFunction f,
CPUState *cs,
return ret;
}
-int cpu_get_dump_info(ArchDumpInfo *info,
- const GuestPhysBlockList *guest_phys_blocks)
+int riscv_get_dump_info(const CPUState *cs, ArchDumpInfo *info,
+ const GuestPhysBlockList *guest_phys_blocks)
{
- RISCVCPU *cpu;
- CPURISCVState *env;
-
- if (first_cpu == NULL) {
- return -1;
- }
- cpu = RISCV_CPU(first_cpu);
- env = &cpu->env;
+ const RISCVCPU *cpu = RISCV_CPU(cs);
+ const CPURISCVState *env = &cpu->env;
info->d_machine = EM_RISCV;
@@ -187,6 +182,16 @@ int cpu_get_dump_info(ArchDumpInfo *info,
return 0;
}
+int cpu_get_dump_info(ArchDumpInfo *info,
+ const GuestPhysBlockList *guest_phys_blocks)
+{
+ if (first_cpu == NULL) {
+ return -1;
+ }
+
+ return riscv_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;
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index 08a4d14ea1f..059aee855df 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -3104,6 +3104,7 @@ static const struct SysemuCPUOps riscv_sysemu_ops = {
.has_work = riscv_cpu_has_work,
.write_elf64_note = riscv_cpu_write_elf64_note,
.write_elf32_note = riscv_cpu_write_elf32_note,
+ .get_dump_info = riscv_get_dump_info,
.legacy_vmsd = &vmstate_riscv_cpu,
#ifdef CONFIG_TCG
.translate_for_debug = riscv_cpu_translate_for_debug,
diff --git a/target/riscv/internals.h b/target/riscv/internals.h
index f17d011d22f..ea4b4140c09 100644
--- a/target/riscv/internals.h
+++ b/target/riscv/internals.h
@@ -207,6 +207,8 @@ bool riscv_cpu_has_work(CPUState *cs);
#endif
extern const struct SemihostingCPUOps riscv_semihosting_ops;
+int riscv_get_dump_info(const CPUState *cs, ArchDumpInfo *info,
+ const GuestPhysBlockList *guest_phys_blocks);
/* Zjpm addr masking routine */
static inline target_ulong adjust_addr_body(CPURISCVState *env,
--
2.47.3