Comments
Patch
@@ -477,8 +477,10 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
return (addr & 0x0fffffff) + KERNEL_LOAD_ADDR;
}
-static void emulate_spapr_hypercall(CPUPPCState *env)
+static void emulate_spapr_hypercall(PowerPCCPU *cpu)
{
+ CPUPPCState *env = &cpu->env;
+
env->gpr[3] = spapr_hypercall(env, env->gpr[3], &env->gpr[4]);
}
@@ -2182,7 +2182,7 @@ static inline uint32_t booke206_tlbnps(CPUPPCState *env, const int tlbn)
#endif
-extern void (*cpu_ppc_hypercall)(CPUPPCState *);
+extern void (*cpu_ppc_hypercall)(PowerPCCPU *);
static inline bool cpu_has_work(CPUPPCState *env)
{
@@ -67,7 +67,7 @@
/*****************************************************************************/
/* PowerPC Hypercall emulation */
-void (*cpu_ppc_hypercall)(CPUPPCState *);
+void (*cpu_ppc_hypercall)(PowerPCCPU *);
/*****************************************************************************/
/* PowerPC MMU emulation */
@@ -2674,7 +2674,7 @@ static inline void powerpc_excp(PowerPCCPU *cpu, int excp_model, int excp)
dump_syscall(env);
lev = env->error_code;
if ((lev == 1) && cpu_ppc_hypercall) {
- cpu_ppc_hypercall(env);
+ cpu_ppc_hypercall(cpu);
return;
}
if (lev == 1 || (lpes0 == 0 && lpes1 == 0))
Adapt emulate_spapr_hypercall() accordingly. Needed for spapr_hypercall(). Signed-off-by: Andreas Färber <afaerber@suse.de> --- hw/spapr.c | 4 +++- target-ppc/cpu.h | 2 +- target-ppc/helper.c | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-)