Expose powerpc_excp_name() prototype and register it as the CPUClass::exception_name() handler, so the common exception logging can resolve PPC exception codes to names.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- target/ppc/cpu.h | 2 ++ target/ppc/cpu_init.c | 1 + target/ppc/excp_helper.c | 5 +++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 3fb51bbeb82..4eb7db3d727 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -153,6 +153,8 @@ enum { POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only */ }; +const char *powerpc_excp_name(int excp); + /* Exceptions error codes */ enum { /* Exception subtypes for POWERPC_EXCP_ALIGN */ diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index b711f9c0a85..d5f9ac28020 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -7529,6 +7529,7 @@ static void ppc_cpu_class_init(ObjectClass *oc, const void *data) &pcc->parent_phases); cc->class_by_name = ppc_cpu_class_by_name; + cc->exception_name = powerpc_excp_name; cc->list_cpus = ppc_cpu_list; cc->dump_state = ppc_cpu_dump_state; cc->set_pc = ppc_cpu_set_pc; diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index 6d05b865058..ab7518363af 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -33,9 +33,8 @@ /*****************************************************************************/ /* Exception processing */ -#ifndef CONFIG_USER_ONLY -static const char *powerpc_excp_name(int excp) +const char *powerpc_excp_name(int excp) { switch (excp) { case POWERPC_EXCP_CRITICAL: return "CRITICAL"; @@ -105,6 +104,8 @@ static const char *powerpc_excp_name(int excp) } } +#ifndef CONFIG_USER_ONLY + static void dump_syscall(CPUPPCState *env) { qemu_log_mask(CPU_LOG_INT, "syscall r0=%016" PRIx64 -- 2.55.0
