Lines Matching full:frame

42  * stack frame and previous contents of the stack.  This allows
43 * frame unwinding in a function epilogue but only if a frame
155 struct sigframe __user *frame = (struct sigframe __user *)regs->regs[15]; in sys_sigreturn() local
162 if (!access_ok(frame, sizeof(*frame))) in sys_sigreturn()
165 if (__get_user(set.sig[0], &frame->sc.oldmask) in sys_sigreturn()
167 && __copy_from_user(&set.sig[1], &frame->extramask, in sys_sigreturn()
168 sizeof(frame->extramask)))) in sys_sigreturn()
173 if (restore_sigcontext(regs, &frame->sc, &r0)) in sys_sigreturn()
185 struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs->regs[15]; in sys_rt_sigreturn() local
192 if (!access_ok(frame, sizeof(*frame))) in sys_rt_sigreturn()
195 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys_rt_sigreturn()
200 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &r0)) in sys_rt_sigreturn()
203 if (restore_altstack(&frame->uc.uc_stack)) in sys_rt_sigreturn()
214 * Set up a signal frame.
269 struct sigframe __user *frame; in setup_frame() local
272 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_frame()
274 if (!access_ok(frame, sizeof(*frame))) in setup_frame()
277 err |= setup_sigcontext(&frame->sc, regs, set->sig[0]); in setup_frame()
280 err |= __copy_to_user(frame->extramask, &set->sig[1], in setup_frame()
281 sizeof(frame->extramask)); in setup_frame()
293 err |= __put_user(MOVW(7), &frame->retcode[0]); in setup_frame()
294 err |= __put_user(TRAP_NOARG, &frame->retcode[1]); in setup_frame()
295 err |= __put_user(OR_R0_R0, &frame->retcode[2]); in setup_frame()
296 err |= __put_user(OR_R0_R0, &frame->retcode[3]); in setup_frame()
297 err |= __put_user(OR_R0_R0, &frame->retcode[4]); in setup_frame()
298 err |= __put_user(OR_R0_R0, &frame->retcode[5]); in setup_frame()
299 err |= __put_user(OR_R0_R0, &frame->retcode[6]); in setup_frame()
300 err |= __put_user((__NR_sigreturn), &frame->retcode[7]); in setup_frame()
301 regs->pr = (unsigned long) frame->retcode; in setup_frame()
302 flush_icache_range(regs->pr, regs->pr + sizeof(frame->retcode)); in setup_frame()
309 regs->regs[15] = (unsigned long) frame; in setup_frame()
312 regs->regs[6] = (unsigned long) &frame->sc; in setup_frame()
327 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); in setup_frame()
335 struct rt_sigframe __user *frame; in setup_rt_frame() local
338 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_rt_frame()
340 if (!access_ok(frame, sizeof(*frame))) in setup_rt_frame()
343 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
346 err |= __put_user(0, &frame->uc.uc_flags); in setup_rt_frame()
347 err |= __put_user(NULL, &frame->uc.uc_link); in setup_rt_frame()
348 err |= __save_altstack(&frame->uc.uc_stack, regs->regs[15]); in setup_rt_frame()
349 err |= setup_sigcontext(&frame->uc.uc_mcontext, in setup_rt_frame()
351 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in setup_rt_frame()
363 err |= __put_user(MOVW(7), &frame->retcode[0]); in setup_rt_frame()
364 err |= __put_user(TRAP_NOARG, &frame->retcode[1]); in setup_rt_frame()
365 err |= __put_user(OR_R0_R0, &frame->retcode[2]); in setup_rt_frame()
366 err |= __put_user(OR_R0_R0, &frame->retcode[3]); in setup_rt_frame()
367 err |= __put_user(OR_R0_R0, &frame->retcode[4]); in setup_rt_frame()
368 err |= __put_user(OR_R0_R0, &frame->retcode[5]); in setup_rt_frame()
369 err |= __put_user(OR_R0_R0, &frame->retcode[6]); in setup_rt_frame()
370 err |= __put_user((__NR_rt_sigreturn), &frame->retcode[7]); in setup_rt_frame()
371 regs->pr = (unsigned long) frame->retcode; in setup_rt_frame()
372 flush_icache_range(regs->pr, regs->pr + sizeof(frame->retcode)); in setup_rt_frame()
379 regs->regs[15] = (unsigned long) frame; in setup_rt_frame()
381 regs->regs[5] = (unsigned long) &frame->info; in setup_rt_frame()
382 regs->regs[6] = (unsigned long) &frame->uc; in setup_rt_frame()
397 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); in setup_rt_frame()
438 /* Set up the stack frame */ in handle_signal()