For now, we keep the global cpu_get_dump_info symbol defined.
Signed-off-by: Pierrick Bouvier <[email protected]>
---
target/ppc/arch_dump.c | 21 +++++++++++++--------
target/ppc/cpu_init.c | 1 +
target/ppc/internal.h | 6 ++++++
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c
index 80ac6c3e320..b8d0bc8462b 100644
--- a/target/ppc/arch_dump.c
+++ b/target/ppc/arch_dump.c
@@ -17,6 +17,7 @@
#include "elf.h"
#include "system/dump.h"
#include "system/kvm.h"
+#include "internal.h"
#ifdef TARGET_PPC64
#define ELFCLASS ELFCLASS64
@@ -229,16 +230,10 @@ static const struct NoteFuncDescStruct {
typedef struct NoteFuncDescStruct NoteFuncDesc;
-int cpu_get_dump_info(ArchDumpInfo *info,
+int ppc_get_dump_info(const CPUState *cs, ArchDumpInfo *info,
const struct GuestPhysBlockList *guest_phys_blocks)
{
- PowerPCCPU *cpu;
-
- if (first_cpu == NULL) {
- return -1;
- }
-
- cpu = POWERPC_CPU(first_cpu);
+ const PowerPCCPU *cpu = POWERPC_CPU(cs);
info->d_machine = PPC_ELF_MACHINE;
info->d_class = ELFCLASS;
@@ -257,6 +252,16 @@ int cpu_get_dump_info(ArchDumpInfo *info,
return 0;
}
+int cpu_get_dump_info(ArchDumpInfo *info,
+ const struct GuestPhysBlockList *guest_phys_blocks)
+{
+ if (first_cpu == NULL) {
+ return -1;
+ }
+
+ return ppc_get_dump_info(first_cpu, info, guest_phys_blocks);
+}
+
ssize_t cpu_get_note_size(int class, int machine, int nr_cpus)
{
int name_size = 8; /* "CORE" or "QEMU" rounded */
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index b711f9c0a85..5853a92bffd 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -7473,6 +7473,7 @@ static const struct SysemuCPUOps ppc_sysemu_ops = {
.get_phys_addr_debug = ppc_cpu_get_phys_addr_debug,
.write_elf32_note = ppc32_cpu_write_elf32_note,
.write_elf64_note = ppc64_cpu_write_elf64_note,
+ .get_dump_info = ppc_get_dump_info,
.internal_is_big_endian = ppc_cpu_is_big_endian,
.legacy_vmsd = &vmstate_ppc_cpu,
};
diff --git a/target/ppc/internal.h b/target/ppc/internal.h
index a20a0f9f7e0..ad01421ffb2 100644
--- a/target/ppc/internal.h
+++ b/target/ppc/internal.h
@@ -22,6 +22,7 @@
#include "exec/memop.h"
#include "hw/core/registerfields.h"
#include "exec/page-protection.h"
+#include "system/dump-arch.h"
static inline bool ppc_env_is_little_endian(const CPUPPCState *env)
{
@@ -324,4 +325,9 @@ static inline int ger_pack_masks(int pmsk, int ymsk, int
xmsk)
TCGTBCPUState ppc_get_tb_cpu_state(CPUState *cs);
#endif
+#ifndef CONFIG_USER_ONLY
+int ppc_get_dump_info(const CPUState *cs, ArchDumpInfo *info,
+ const struct GuestPhysBlockList *guest_phys_blocks);
+#endif
+
#endif /* PPC_INTERNAL_H */
--
2.43.0