Lines Matching full:frame

294  * Set up a signal frame.
446 struct sigframe *frame; in setup_frame() local
458 frame = lock_user(VERIFY_WRITE, frame_addr, total_size, 0); in setup_frame()
459 if (!frame) { in setup_frame()
464 fxstate = (void *)frame + (fxstate_addr - frame_addr); in setup_frame()
468 fpstate = (void *)frame + (fpstate_addr - frame_addr); in setup_frame()
471 setup_sigcontext(env, &frame->sc, set->sig[0], fpkind, in setup_frame()
475 __put_user(set->sig[i], &frame->extramask[i - 1]); in setup_frame()
481 __put_user(ka->sa_restorer, &frame->pretcode); in setup_frame()
484 install_sigtramp(frame->retcode); in setup_frame()
485 __put_user(default_sigreturn, &frame->pretcode); in setup_frame()
487 unlock_user(frame, frame_addr, total_size); in setup_frame()
495 __put_user(sig, &frame->sig); in setup_frame()
514 struct rt_sigframe *frame; in setup_rt_frame() local
526 frame = lock_user(VERIFY_WRITE, frame_addr, total_size, 0); in setup_rt_frame()
527 if (!frame) { in setup_rt_frame()
532 frame->info = *info; in setup_rt_frame()
536 __put_user(fpkind == FPSTATE_XSAVE, &frame->uc.tuc_flags); in setup_rt_frame()
537 __put_user(0, &frame->uc.tuc_link); in setup_rt_frame()
538 target_save_altstack(&frame->uc.tuc_stack, env); in setup_rt_frame()
540 fxstate = (void *)frame + (fxstate_addr - frame_addr); in setup_rt_frame()
544 fpstate = (void *)frame + (fpstate_addr - frame_addr); in setup_rt_frame()
547 setup_sigcontext(env, &frame->uc.tuc_mcontext, set->sig[0], fpkind, in setup_rt_frame()
551 __put_user(set->sig[i], &frame->uc.tuc_sigmask.sig[i]); in setup_rt_frame()
559 __put_user(ka->sa_restorer, &frame->pretcode); in setup_rt_frame()
566 install_rt_sigtramp(frame->retcode); in setup_rt_frame()
567 __put_user(default_rt_sigreturn, &frame->pretcode); in setup_rt_frame()
578 __put_user(sig, &frame->sig); in setup_rt_frame()
580 __put_user(env->regs[R_EDX], &frame->pinfo); in setup_rt_frame()
582 __put_user(env->regs[R_ECX], &frame->puc); in setup_rt_frame()
589 unlock_user(frame, frame_addr, total_size); in setup_rt_frame()
603 * Restore a signal frame.
634 * Restore the features indicated in the frame, masked by in xrstor_sigcontext()
635 * those currently enabled. Re-check the frame size. in xrstor_sigcontext()
700 * Copy the legacy state because the FP portion of the FX frame has in frstor_sigcontext()
796 struct sigframe *frame; in do_sigreturn() local
802 if (!lock_user_struct(VERIFY_READ, frame, frame_addr, 1)) { in do_sigreturn()
808 __get_user(target_set.sig[0], &frame->sc.oldmask); in do_sigreturn()
810 __get_user(target_set.sig[i], &frame->extramask[i - 1]); in do_sigreturn()
816 if (!restore_sigcontext(env, &frame->sc)) { in do_sigreturn()
820 unlock_user_struct(frame, frame_addr, 0); in do_sigreturn()
828 struct rt_sigframe *frame; in do_rt_sigreturn() local
833 if (!lock_user_struct(VERIFY_READ, frame, frame_addr, 1)) in do_rt_sigreturn()
835 target_to_host_sigset(&set, &frame->uc.tuc_sigmask); in do_rt_sigreturn()
838 if (!restore_sigcontext(env, &frame->uc.tuc_mcontext)) { in do_rt_sigreturn()
842 target_restore_altstack(&frame->uc.tuc_stack, env); in do_rt_sigreturn()
844 unlock_user_struct(frame, frame_addr, 0); in do_rt_sigreturn()
848 unlock_user_struct(frame, frame_addr, 0); in do_rt_sigreturn()