Lines Matching full:frame

43  * stack frame and previous contents of the stack.  This allows
44 * frame unwinding in a function epilogue but only if a frame
156 struct sigframe __user *frame = (struct sigframe __user *)regs->regs[15]; in sys_sigreturn() local
163 if (!access_ok(frame, sizeof(*frame))) in sys_sigreturn()
166 if (__get_user(set.sig[0], &frame->sc.oldmask) in sys_sigreturn()
168 && __copy_from_user(&set.sig[1], &frame->extramask, in sys_sigreturn()
169 sizeof(frame->extramask)))) in sys_sigreturn()
174 if (restore_sigcontext(regs, &frame->sc, &r0)) in sys_sigreturn()
186 struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs->regs[15]; in sys_rt_sigreturn() local
193 if (!access_ok(frame, sizeof(*frame))) in sys_rt_sigreturn()
196 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys_rt_sigreturn()
201 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &r0)) in sys_rt_sigreturn()
204 if (restore_altstack(&frame->uc.uc_stack)) in sys_rt_sigreturn()
215 * Set up a signal frame.
270 struct sigframe __user *frame; in setup_frame() local
273 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_frame()
275 if (!access_ok(frame, sizeof(*frame))) in setup_frame()
278 err |= setup_sigcontext(&frame->sc, regs, set->sig[0]); in setup_frame()
281 err |= __copy_to_user(frame->extramask, &set->sig[1], in setup_frame()
282 sizeof(frame->extramask)); in setup_frame()
294 err |= __put_user(MOVW(7), &frame->retcode[0]); in setup_frame()
295 err |= __put_user(TRAP_NOARG, &frame->retcode[1]); in setup_frame()
296 err |= __put_user(OR_R0_R0, &frame->retcode[2]); in setup_frame()
297 err |= __put_user(OR_R0_R0, &frame->retcode[3]); in setup_frame()
298 err |= __put_user(OR_R0_R0, &frame->retcode[4]); in setup_frame()
299 err |= __put_user(OR_R0_R0, &frame->retcode[5]); in setup_frame()
300 err |= __put_user(OR_R0_R0, &frame->retcode[6]); in setup_frame()
301 err |= __put_user((__NR_sigreturn), &frame->retcode[7]); in setup_frame()
302 regs->pr = (unsigned long) frame->retcode; in setup_frame()
303 flush_icache_range(regs->pr, regs->pr + sizeof(frame->retcode)); in setup_frame()
310 regs->regs[15] = (unsigned long) frame; in setup_frame()
313 regs->regs[6] = (unsigned long) &frame->sc; in setup_frame()
328 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); in setup_frame()
336 struct rt_sigframe __user *frame; in setup_rt_frame() local
339 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_rt_frame()
341 if (!access_ok(frame, sizeof(*frame))) in setup_rt_frame()
344 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
347 err |= __put_user(0, &frame->uc.uc_flags); in setup_rt_frame()
348 err |= __put_user(NULL, &frame->uc.uc_link); in setup_rt_frame()
349 err |= __save_altstack(&frame->uc.uc_stack, regs->regs[15]); in setup_rt_frame()
350 err |= setup_sigcontext(&frame->uc.uc_mcontext, in setup_rt_frame()
352 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in setup_rt_frame()
364 err |= __put_user(MOVW(7), &frame->retcode[0]); in setup_rt_frame()
365 err |= __put_user(TRAP_NOARG, &frame->retcode[1]); in setup_rt_frame()
366 err |= __put_user(OR_R0_R0, &frame->retcode[2]); in setup_rt_frame()
367 err |= __put_user(OR_R0_R0, &frame->retcode[3]); in setup_rt_frame()
368 err |= __put_user(OR_R0_R0, &frame->retcode[4]); in setup_rt_frame()
369 err |= __put_user(OR_R0_R0, &frame->retcode[5]); in setup_rt_frame()
370 err |= __put_user(OR_R0_R0, &frame->retcode[6]); in setup_rt_frame()
371 err |= __put_user((__NR_rt_sigreturn), &frame->retcode[7]); in setup_rt_frame()
372 regs->pr = (unsigned long) frame->retcode; in setup_rt_frame()
373 flush_icache_range(regs->pr, regs->pr + sizeof(frame->retcode)); in setup_rt_frame()
380 regs->regs[15] = (unsigned long) frame; in setup_rt_frame()
382 regs->regs[5] = (unsigned long) &frame->info; in setup_rt_frame()
383 regs->regs[6] = (unsigned long) &frame->uc; in setup_rt_frame()
398 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); in setup_rt_frame()
439 /* Set up the stack frame */ in handle_signal()