Lines Matching full:frame
225 static bool parse_extcontext(struct extctx_layout *extctx, abi_ptr frame) in parse_extcontext() argument
232 if (get_user_u32(magic, frame) || get_user_u32(size, frame + 4)) { in parse_extcontext()
238 extctx->end.gaddr = frame; in parse_extcontext()
248 extctx->fpu.gaddr = frame; in parse_extcontext()
257 extctx->lsx.gaddr = frame; in parse_extcontext()
266 extctx->lasx.gaddr = frame; in parse_extcontext()
274 frame += size; in parse_extcontext()
353 struct target_rt_sigframe *frame; in setup_rt_frame() local
361 frame = lock_user(VERIFY_WRITE, frame_addr, in setup_rt_frame()
362 sizeof(*frame) + extctx.size, 0); in setup_rt_frame()
363 if (!frame) { in setup_rt_frame()
369 extctx.lasx.haddr = (void *)frame + (extctx.lasx.gaddr - frame_addr); in setup_rt_frame()
370 extctx.end.haddr = (void *)frame + (extctx.end.gaddr - frame_addr); in setup_rt_frame()
372 extctx.lsx.haddr = (void *)frame + (extctx.lsx.gaddr - frame_addr); in setup_rt_frame()
373 extctx.end.haddr = (void *)frame + (extctx.end.gaddr - frame_addr); in setup_rt_frame()
375 extctx.fpu.haddr = (void *)frame + (extctx.fpu.gaddr - frame_addr); in setup_rt_frame()
376 extctx.end.haddr = (void *)frame + (extctx.end.gaddr - frame_addr); in setup_rt_frame()
379 frame->rs_info = *info; in setup_rt_frame()
381 __put_user(0, &frame->rs_uc.tuc_flags); in setup_rt_frame()
382 __put_user(0, &frame->rs_uc.tuc_link); in setup_rt_frame()
383 target_save_altstack(&frame->rs_uc.tuc_stack, env); in setup_rt_frame()
385 setup_sigframe(env, &frame->rs_uc.tuc_mcontext, &extctx); in setup_rt_frame()
388 __put_user(set->sig[i], &frame->rs_uc.tuc_sigmask.sig[i]); in setup_rt_frame()
398 unlock_user(frame, frame_addr, sizeof(*frame) + extctx.size); in setup_rt_frame()
403 struct target_rt_sigframe *frame; in do_rt_sigreturn() local
411 if (!parse_extcontext(&extctx, frame_addr + sizeof(*frame))) { in do_rt_sigreturn()
415 frame = lock_user(VERIFY_READ, frame_addr, in do_rt_sigreturn()
416 sizeof(*frame) + extctx.size, 1); in do_rt_sigreturn()
417 if (!frame) { in do_rt_sigreturn()
422 extctx.lasx.haddr = (void *)frame + (extctx.lasx.gaddr - frame_addr); in do_rt_sigreturn()
424 extctx.lsx.haddr = (void *)frame + (extctx.lsx.gaddr - frame_addr); in do_rt_sigreturn()
426 extctx.fpu.haddr = (void *)frame + (extctx.fpu.gaddr - frame_addr); in do_rt_sigreturn()
429 target_to_host_sigset(&blocked, &frame->rs_uc.tuc_sigmask); in do_rt_sigreturn()
432 restore_sigframe(env, &frame->rs_uc.tuc_mcontext, &extctx); in do_rt_sigreturn()
434 target_restore_altstack(&frame->rs_uc.tuc_stack, env); in do_rt_sigreturn()
436 unlock_user(frame, frame_addr, 0); in do_rt_sigreturn()