• Home
  • Raw
  • Download

Lines Matching refs:scr

43 restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr)  in restore_sigcontext()  argument
58 err |= __get_user(scr->pt.ar_unat, &sc->sc_ar_unat); in restore_sigcontext()
59 err |= __get_user(scr->pt.ar_fpsr, &sc->sc_ar_fpsr); in restore_sigcontext()
60 err |= __get_user(scr->pt.ar_pfs, &sc->sc_ar_pfs); in restore_sigcontext()
61 err |= __get_user(scr->pt.pr, &sc->sc_pr); /* predicates */ in restore_sigcontext()
62 err |= __get_user(scr->pt.b0, &sc->sc_br[0]); /* b0 (rp) */ in restore_sigcontext()
63 err |= __get_user(scr->pt.b6, &sc->sc_br[6]); /* b6 */ in restore_sigcontext()
64 err |= __copy_from_user(&scr->pt.r1, &sc->sc_gr[1], 8); /* r1 */ in restore_sigcontext()
65 err |= __copy_from_user(&scr->pt.r8, &sc->sc_gr[8], 4*8); /* r8-r11 */ in restore_sigcontext()
66 err |= __copy_from_user(&scr->pt.r12, &sc->sc_gr[12], 2*8); /* r12-r13 */ in restore_sigcontext()
67 err |= __copy_from_user(&scr->pt.r15, &sc->sc_gr[15], 8); /* r15 */ in restore_sigcontext()
69 scr->pt.cr_ifs = cfm | (1UL << 63); in restore_sigcontext()
70 scr->pt.ar_rsc = rsc | (3 << 2); /* force PL3 */ in restore_sigcontext()
73 scr->pt.cr_iip = ip & ~0x3UL; in restore_sigcontext()
74 ia64_psr(&scr->pt)->ri = ip & 0x3; in restore_sigcontext()
75 scr->pt.cr_ipsr = (scr->pt.cr_ipsr & ~IA64_PSR_UM) | (um & IA64_PSR_UM); in restore_sigcontext()
77 scr->scratch_unat = ia64_put_scratch_nat_bits(&scr->pt, nat); in restore_sigcontext()
81 err |= __get_user(scr->pt.ar_ccv, &sc->sc_ar_ccv); /* ar.ccv */ in restore_sigcontext()
82 err |= __get_user(scr->pt.b7, &sc->sc_br[7]); /* b7 */ in restore_sigcontext()
83 err |= __get_user(scr->pt.r14, &sc->sc_gr[14]); /* r14 */ in restore_sigcontext()
84 err |= __copy_from_user(&scr->pt.ar_csd, &sc->sc_ar25, 2*8); /* ar.csd & ar.ssd */ in restore_sigcontext()
85 err |= __copy_from_user(&scr->pt.r2, &sc->sc_gr[2], 2*8); /* r2-r3 */ in restore_sigcontext()
86 err |= __copy_from_user(&scr->pt.r16, &sc->sc_gr[16], 16*8); /* r16-r31 */ in restore_sigcontext()
90 struct ia64_psr *psr = ia64_psr(&scr->pt); in restore_sigcontext()
161 ia64_rt_sigreturn (struct sigscratch *scr) in ia64_rt_sigreturn() argument
169 sc = &((struct sigframe __user *) (scr->pt.r12 + 16))->sc; in ia64_rt_sigreturn()
196 if (restore_sigcontext(sc, scr)) in ia64_rt_sigreturn()
201 current->comm, current->pid, scr->pt.r12, scr->pt.cr_iip); in ia64_rt_sigreturn()
225 setup_sigcontext (struct sigcontext __user *sc, sigset_t *mask, struct sigscratch *scr) in setup_sigcontext() argument
230 ifs = scr->pt.cr_ifs; in setup_sigcontext()
244 nat = ia64_get_scratch_nat_bits(&scr->pt, scr->scratch_unat); in setup_sigcontext()
250 err |= __put_user(scr->pt.cr_ipsr & IA64_PSR_UM, &sc->sc_um); in setup_sigcontext()
251 err |= __put_user(scr->pt.ar_rsc, &sc->sc_ar_rsc); in setup_sigcontext()
252 err |= __put_user(scr->pt.ar_unat, &sc->sc_ar_unat); /* ar.unat */ in setup_sigcontext()
253 err |= __put_user(scr->pt.ar_fpsr, &sc->sc_ar_fpsr); /* ar.fpsr */ in setup_sigcontext()
254 err |= __put_user(scr->pt.ar_pfs, &sc->sc_ar_pfs); in setup_sigcontext()
255 err |= __put_user(scr->pt.pr, &sc->sc_pr); /* predicates */ in setup_sigcontext()
256 err |= __put_user(scr->pt.b0, &sc->sc_br[0]); /* b0 (rp) */ in setup_sigcontext()
257 err |= __put_user(scr->pt.b6, &sc->sc_br[6]); /* b6 */ in setup_sigcontext()
258 err |= __copy_to_user(&sc->sc_gr[1], &scr->pt.r1, 8); /* r1 */ in setup_sigcontext()
259 err |= __copy_to_user(&sc->sc_gr[8], &scr->pt.r8, 4*8); /* r8-r11 */ in setup_sigcontext()
260 err |= __copy_to_user(&sc->sc_gr[12], &scr->pt.r12, 2*8); /* r12-r13 */ in setup_sigcontext()
261 err |= __copy_to_user(&sc->sc_gr[15], &scr->pt.r15, 8); /* r15 */ in setup_sigcontext()
262 err |= __put_user(scr->pt.cr_iip + ia64_psr(&scr->pt)->ri, &sc->sc_ip); in setup_sigcontext()
266 err |= __put_user(scr->pt.ar_ccv, &sc->sc_ar_ccv); /* ar.ccv */ in setup_sigcontext()
267 err |= __put_user(scr->pt.b7, &sc->sc_br[7]); /* b7 */ in setup_sigcontext()
268 err |= __put_user(scr->pt.r14, &sc->sc_gr[14]); /* r14 */ in setup_sigcontext()
269 err |= __copy_to_user(&sc->sc_ar25, &scr->pt.ar_csd, 2*8); /* ar.csd & ar.ssd */ in setup_sigcontext()
270 err |= __copy_to_user(&sc->sc_gr[2], &scr->pt.r2, 2*8); /* r2-r3 */ in setup_sigcontext()
271 err |= __copy_to_user(&sc->sc_gr[16], &scr->pt.r16, 16*8); /* r16-r31 */ in setup_sigcontext()
316 setup_frame(struct ksignal *ksig, sigset_t *set, struct sigscratch *scr) in setup_frame() argument
323 new_sp = scr->pt.r12; in setup_frame()
336 if (!rbs_on_sig_stack(scr->pt.ar_bspstore)) in setup_frame()
367 err |= __save_altstack(&frame->sc.sc_stack, scr->pt.r12); in setup_frame()
368 err |= setup_sigcontext(&frame->sc, set, scr); in setup_frame()
373 scr->pt.r12 = (unsigned long) frame - 16; /* new stack pointer */ in setup_frame()
374 scr->pt.ar_fpsr = FPSR_DEFAULT; /* reset fpsr for signal handler */ in setup_frame()
375 scr->pt.cr_iip = tramp_addr; in setup_frame()
376 ia64_psr(&scr->pt)->ri = 0; /* start executing in first slot */ in setup_frame()
377 ia64_psr(&scr->pt)->be = 0; /* force little-endian byte-order */ in setup_frame()
386 scr->pt.cr_ifs = (1UL << 63); in setup_frame()
392 scr->scratch_unat = 0; /* ensure NaT bits of r12 is clear */ in setup_frame()
396 current->comm, current->pid, ksig->sig, scr->pt.r12, frame->sc.sc_ip, frame->handler); in setup_frame()
402 handle_signal (struct ksignal *ksig, struct sigscratch *scr) in handle_signal() argument
404 int ret = setup_frame(ksig, sigmask_to_save(), scr); in handle_signal()
417 ia64_do_signal (struct sigscratch *scr, long in_syscall) in ia64_do_signal() argument
420 long errno = scr->pt.r8; in ia64_do_signal()
436 if ((long) scr->pt.r10 != -1) in ia64_do_signal()
452 scr->pt.r8 = EINTR; in ia64_do_signal()
458 scr->pt.r8 = EINTR; in ia64_do_signal()
463 ia64_decrement_ip(&scr->pt); in ia64_do_signal()
472 if (handle_signal(&ksig, scr)) in ia64_do_signal()
487 ia64_decrement_ip(&scr->pt); in ia64_do_signal()
489 scr->pt.r15 = __NR_restart_syscall; in ia64_do_signal()