Lines Matching refs:frame
32 static int preserve_crunch_context(struct crunch_sigframe __user *frame) in preserve_crunch_context() argument
34 char kbuf[sizeof(*frame) + 8]; in preserve_crunch_context()
42 return __copy_to_user(frame, kframe, sizeof(*frame)); in preserve_crunch_context()
47 struct crunch_sigframe __user *frame = in restore_crunch_context() local
49 char kbuf[sizeof(*frame) + 8]; in restore_crunch_context()
54 if (__copy_from_user(kframe, frame, sizeof(*frame))) in restore_crunch_context()
67 static int preserve_iwmmxt_context(struct iwmmxt_sigframe __user *frame) in preserve_iwmmxt_context() argument
69 char kbuf[sizeof(*frame) + 8]; in preserve_iwmmxt_context()
81 err = __copy_to_user(frame, kframe, sizeof(*frame)); in preserve_iwmmxt_context()
89 __put_user_error(DUMMY_MAGIC, &frame->magic, err); in preserve_iwmmxt_context()
90 __put_user_error(IWMMXT_STORAGE_SIZE, &frame->size, err); in preserve_iwmmxt_context()
98 struct iwmmxt_sigframe __user *frame = in restore_iwmmxt_context() local
100 char kbuf[sizeof(*frame) + 8]; in restore_iwmmxt_context()
105 if (__copy_from_user(kframe, frame, sizeof(*frame))) in restore_iwmmxt_context()
136 static int preserve_vfp_context(struct vfp_sigframe __user *frame) in preserve_vfp_context() argument
142 __put_user_error(magic, &frame->magic, err); in preserve_vfp_context()
143 __put_user_error(size, &frame->size, err); in preserve_vfp_context()
148 return vfp_preserve_user_clear_hwstate(&frame->ufp, &frame->ufp_exc); in preserve_vfp_context()
153 struct vfp_sigframe frame; in restore_vfp_context() local
156 err = __copy_from_user(&frame, *auxp, sizeof(frame)); in restore_vfp_context()
160 if (frame.magic != VFP_MAGIC || frame.size != VFP_STORAGE_SIZE) in restore_vfp_context()
163 *auxp += sizeof(frame); in restore_vfp_context()
164 return vfp_restore_user_hwstate(&frame.ufp, &frame.ufp_exc); in restore_vfp_context()
226 struct sigframe __user *frame; in sys_sigreturn() local
239 frame = (struct sigframe __user *)regs->ARM_sp; in sys_sigreturn()
241 if (!access_ok(VERIFY_READ, frame, sizeof (*frame))) in sys_sigreturn()
244 if (restore_sigframe(regs, frame)) in sys_sigreturn()
256 struct rt_sigframe __user *frame; in sys_rt_sigreturn() local
269 frame = (struct rt_sigframe __user *)regs->ARM_sp; in sys_rt_sigreturn()
271 if (!access_ok(VERIFY_READ, frame, sizeof (*frame))) in sys_rt_sigreturn()
274 if (restore_sigframe(regs, &frame->sig)) in sys_rt_sigreturn()
277 if (restore_altstack(&frame->sig.uc.uc_stack)) in sys_rt_sigreturn()
340 void __user *frame; in get_sigframe() local
345 frame = (void __user *)((sp - framesize) & ~7); in get_sigframe()
350 if (!access_ok(VERIFY_WRITE, frame, framesize)) in get_sigframe()
351 frame = NULL; in get_sigframe()
353 return frame; in get_sigframe()
358 unsigned long __user *rc, void __user *frame) in setup_return() argument
472 regs->ARM_sp = (unsigned long)frame; in setup_return()
485 struct sigframe __user *frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame() local
488 if (!frame) in setup_frame()
494 __put_user_error(0x5ac3c35a, &frame->uc.uc_flags, err); in setup_frame()
496 err |= setup_sigframe(frame, regs, set); in setup_frame()
498 err = setup_return(regs, ksig, frame->retcode, frame); in setup_frame()
506 struct rt_sigframe __user *frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() local
509 if (!frame) in setup_rt_frame()
512 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
514 __put_user_error(0, &frame->sig.uc.uc_flags, err); in setup_rt_frame()
515 __put_user_error(NULL, &frame->sig.uc.uc_link, err); in setup_rt_frame()
517 err |= __save_altstack(&frame->sig.uc.uc_stack, regs->ARM_sp); in setup_rt_frame()
518 err |= setup_sigframe(&frame->sig, regs, set); in setup_rt_frame()
520 err = setup_return(regs, ksig, frame->sig.retcode, frame); in setup_rt_frame()
528 regs->ARM_r1 = (unsigned long)&frame->info; in setup_rt_frame()
529 regs->ARM_r2 = (unsigned long)&frame->sig.uc; in setup_rt_frame()