For now, we keep the global cpu_get_dump_info symbol defined.
Signed-off-by: Pierrick Bouvier <[email protected]>
---
target/arm/arch_dump.c | 23 +++++++++++++----------
target/arm/cpu.c | 1 +
target/arm/internals.h | 3 +++
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/target/arm/arch_dump.c b/target/arm/arch_dump.c
index 1dd79849c13..98eecf3d26d 100644
--- a/target/arm/arch_dump.c
+++ b/target/arm/arch_dump.c
@@ -385,21 +385,14 @@ int arm_cpu_write_elf32_note(WriteCoreDumpFunction f,
CPUState *cs,
return 0;
}
-int cpu_get_dump_info(ArchDumpInfo *info,
+int arm_get_dump_info(const CPUState *cs, ArchDumpInfo *info,
const GuestPhysBlockList *guest_phys_blocks)
{
- ARMCPU *cpu;
- CPUARMState *env;
+ const ARMCPU *cpu = ARM_CPU(cs);
+ const CPUARMState *env = &cpu->env;
GuestPhysBlock *block;
hwaddr lowest_addr = ULLONG_MAX;
- if (first_cpu == NULL) {
- return -1;
- }
-
- cpu = ARM_CPU(first_cpu);
- env = &cpu->env;
-
/* Take a best guess at the phys_base. If we get it wrong then crash
* will need '--machdep phys_offset=<phys-offset>' added to its command
* line, which isn't any worse than assuming we can use zero, but being
@@ -439,6 +432,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 arm_get_dump_info(first_cpu, info, guest_phys_blocks);
+}
+
ssize_t cpu_get_note_size(int class, int machine, int nr_cpus)
{
ARMCPU *cpu = ARM_CPU(first_cpu);
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index 81ec1ce21c6..7bf0c5e74f8 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -2569,6 +2569,7 @@ static const struct SysemuCPUOps arm_sysemu_ops = {
.asidx_from_attrs = arm_asidx_from_attrs,
.write_elf32_note = arm_cpu_write_elf32_note,
.write_elf64_note = arm_cpu_write_elf64_note,
+ .get_dump_info = arm_get_dump_info,
.internal_is_big_endian = arm_cpu_internal_is_big_endian,
.legacy_vmsd = &vmstate_arm_cpu,
};
diff --git a/target/arm/internals.h b/target/arm/internals.h
index e849e357cfe..086d9574ced 100644
--- a/target/arm/internals.h
+++ b/target/arm/internals.h
@@ -30,6 +30,7 @@
#include "exec/breakpoint.h"
#include "exec/memop.h"
#include "gdbstub/enums.h"
+#include "system/dump-arch.h"
#ifdef CONFIG_TCG
#include "accel/tcg/tb-cpu-state.h"
#include "tcg/tcg-gvec-desc.h"
@@ -438,6 +439,8 @@ int arm_cpu_mmu_index(CPUState *cs, bool ifetch);
#endif /* CONFIG_TCG */
extern const struct SemihostingCPUOps arm_semihosting_ops;
+int arm_get_dump_info(const CPUState *cs, ArchDumpInfo *info,
+ const struct GuestPhysBlockList *guest_phys_blocks);
typedef enum ARMFPRounding {
FPROUNDING_TIEEVEN,
--
2.43.0