goto badframe;
}
- target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
set_sigmask(&set);
restore_sigcontext(env, &frame->uc.tuc_mcontext);
- target_restore_altstack(&frame->uc.tuc_stack, env->ir[IR_SP]);
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
}
}
- target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&uc->tuc_stack, env);
#if 0
/* Send SIGTRAP if we're single-stepping */
goto badframe;
}
- target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.tuc_stack, env);
#if 0
/* Send SIGTRAP if we're single-stepping */
}
restore_ucontext(env, &frame->uc);
- target_restore_altstack(&frame->uc.uc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.uc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
set_sigmask(&set);
restore_sigcontext(env, &frame->uc.tuc_mcontext);
- target_restore_altstack(&frame->uc.tuc_stack, env->gr[30]);
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
goto badframe;
}
- target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
if (target_rt_restore_ucontext(env, &frame->uc))
goto badframe;
- target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
restore_sigcontext(&frame->uc.tuc_mcontext, env);
- target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
set_sigmask(&blocked);
restore_sigcontext(env, &frame->rs_uc.tuc_mcontext);
- target_restore_altstack(&frame->rs_uc.tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->rs_uc.tuc_stack, env);
env->active_tc.PC = env->CP0_EPC;
mips_set_hflags_isa_mode_from_pc(env);
__get_user(env->regs[R_RA], &gregs[23]);
__get_user(env->regs[R_SP], &gregs[28]);
- target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&uc->tuc_stack, env);
*pr2 = env->regs[2];
return 0;
set_sigmask(&set);
restore_sigcontext(env, &frame->uc.tuc_mcontext);
- target_restore_altstack(&frame->uc.tuc_stack, frame_addr);
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return cpu_get_gpr(env, 11);
if (do_setcontext(&rt_sf->uc, env, 1))
goto sigsegv;
- target_restore_altstack(&rt_sf->uc.tuc_stack, env->gpr[1]);
+ target_restore_altstack(&rt_sf->uc.tuc_stack, env);
unlock_user_struct(rt_sf, rt_sf_addr, 1);
return -TARGET_QEMU_ESIGRETURN;
}
restore_ucontext(env, &frame->uc);
- target_restore_altstack(&frame->uc.uc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.uc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
goto badframe;
}
- target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
set_sigmask(&blocked);
restore_sigcontext(regs, &frame->uc.tuc_mcontext);
- target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(regs));
+ target_restore_altstack(&frame->uc.tuc_stack, regs);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;
int sas_ss_flags(unsigned long sp);
abi_ulong target_sigsp(abi_ulong sp, struct target_sigaction *ka);
void target_save_altstack(target_stack_t *uss, CPUArchState *env);
-abi_long target_restore_altstack(target_stack_t *uss, abi_ulong sp);
+abi_long target_restore_altstack(target_stack_t *uss, CPUArchState *env);
static inline void target_sigemptyset(target_sigset_t *set)
{
__put_user(ts->sigaltstack_used.ss_size, &uss->ss_size);
}
-abi_long target_restore_altstack(target_stack_t *uss, abi_ulong sp)
+abi_long target_restore_altstack(target_stack_t *uss, CPUArchState *env)
{
TaskState *ts = (TaskState *)thread_cpu->opaque;
size_t minstacksize = TARGET_MINSIGSTKSZ;
__get_user(ss.ss_size, &uss->ss_size);
__get_user(ss.ss_flags, &uss->ss_flags);
- if (on_sig_stack(sp)) {
+ if (on_sig_stack(get_sp_from_cpustate(env))) {
return -TARGET_EPERM;
}
if (!lock_user_struct(VERIFY_READ, uss, uss_addr, 1)) {
goto out;
}
- ret = target_restore_altstack(uss, get_sp_from_cpustate(env));
+ ret = target_restore_altstack(uss, env);
if (ret) {
goto out;
}
set_sigmask(&set);
restore_sigcontext(env, frame);
- target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env));
+ target_restore_altstack(&frame->uc.tuc_stack, env);
unlock_user_struct(frame, frame_addr, 0);
return -TARGET_QEMU_ESIGRETURN;