Lines Matching refs:sc
44 static int (*save_fp_context)(struct sigcontext __user *sc);
45 static int (*restore_fp_context)(struct sigcontext __user *sc);
47 extern asmlinkage int _save_fp_context(struct sigcontext __user *sc);
48 extern asmlinkage int _restore_fp_context(struct sigcontext __user *sc);
68 static int copy_fp_to_sigcontext(struct sigcontext __user *sc) in copy_fp_to_sigcontext() argument
76 &sc->sc_fpregs[i]); in copy_fp_to_sigcontext()
78 err |= __put_user(current->thread.fpu.fcr31, &sc->sc_fpc_csr); in copy_fp_to_sigcontext()
83 static int copy_fp_from_sigcontext(struct sigcontext __user *sc) in copy_fp_from_sigcontext() argument
90 err |= __get_user(fpr_val, &sc->sc_fpregs[i]); in copy_fp_from_sigcontext()
93 err |= __get_user(current->thread.fpu.fcr31, &sc->sc_fpc_csr); in copy_fp_from_sigcontext()
101 static int protected_save_fp_context(struct sigcontext __user *sc) in protected_save_fp_context() argument
108 err = save_fp_context(sc); in protected_save_fp_context()
112 err = copy_fp_to_sigcontext(sc); in protected_save_fp_context()
117 err = __put_user(0, &sc->sc_fpregs[0]) | in protected_save_fp_context()
118 __put_user(0, &sc->sc_fpregs[31]) | in protected_save_fp_context()
119 __put_user(0, &sc->sc_fpc_csr); in protected_save_fp_context()
129 err = save_fp_context(sc); /* this might fail */ in protected_save_fp_context()
134 static int protected_restore_fp_context(struct sigcontext __user *sc) in protected_restore_fp_context() argument
141 err = restore_fp_context(sc); in protected_restore_fp_context()
145 err = copy_fp_from_sigcontext(sc); in protected_restore_fp_context()
150 err = __get_user(tmp, &sc->sc_fpregs[0]) | in protected_restore_fp_context()
151 __get_user(tmp, &sc->sc_fpregs[31]) | in protected_restore_fp_context()
152 __get_user(tmp, &sc->sc_fpc_csr); in protected_restore_fp_context()
162 err = restore_fp_context(sc); /* this might fail */ in protected_restore_fp_context()
167 int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) in setup_sigcontext() argument
173 err |= __put_user(regs->cp0_epc, &sc->sc_pc); in setup_sigcontext()
175 err |= __put_user(0, &sc->sc_regs[0]); in setup_sigcontext()
177 err |= __put_user(regs->regs[i], &sc->sc_regs[i]); in setup_sigcontext()
180 err |= __put_user(regs->acx, &sc->sc_acx); in setup_sigcontext()
182 err |= __put_user(regs->hi, &sc->sc_mdhi); in setup_sigcontext()
183 err |= __put_user(regs->lo, &sc->sc_mdlo); in setup_sigcontext()
185 err |= __put_user(mfhi1(), &sc->sc_hi1); in setup_sigcontext()
186 err |= __put_user(mflo1(), &sc->sc_lo1); in setup_sigcontext()
187 err |= __put_user(mfhi2(), &sc->sc_hi2); in setup_sigcontext()
188 err |= __put_user(mflo2(), &sc->sc_lo2); in setup_sigcontext()
189 err |= __put_user(mfhi3(), &sc->sc_hi3); in setup_sigcontext()
190 err |= __put_user(mflo3(), &sc->sc_lo3); in setup_sigcontext()
191 err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp); in setup_sigcontext()
195 err |= __put_user(used_math, &sc->sc_used_math); in setup_sigcontext()
202 err |= protected_save_fp_context(sc); in setup_sigcontext()
227 check_and_restore_fp_context(struct sigcontext __user *sc) in check_and_restore_fp_context() argument
231 err = sig = fpcsr_pending(&sc->sc_fpc_csr); in check_and_restore_fp_context()
234 err |= protected_restore_fp_context(sc); in check_and_restore_fp_context()
238 int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) in restore_sigcontext() argument
248 err |= __get_user(regs->cp0_epc, &sc->sc_pc); in restore_sigcontext()
251 err |= __get_user(regs->acx, &sc->sc_acx); in restore_sigcontext()
253 err |= __get_user(regs->hi, &sc->sc_mdhi); in restore_sigcontext()
254 err |= __get_user(regs->lo, &sc->sc_mdlo); in restore_sigcontext()
256 err |= __get_user(treg, &sc->sc_hi1); mthi1(treg); in restore_sigcontext()
257 err |= __get_user(treg, &sc->sc_lo1); mtlo1(treg); in restore_sigcontext()
258 err |= __get_user(treg, &sc->sc_hi2); mthi2(treg); in restore_sigcontext()
259 err |= __get_user(treg, &sc->sc_lo2); mtlo2(treg); in restore_sigcontext()
260 err |= __get_user(treg, &sc->sc_hi3); mthi3(treg); in restore_sigcontext()
261 err |= __get_user(treg, &sc->sc_lo3); mtlo3(treg); in restore_sigcontext()
262 err |= __get_user(treg, &sc->sc_dsp); wrdsp(treg, DSP_MASK); in restore_sigcontext()
266 err |= __get_user(regs->regs[i], &sc->sc_regs[i]); in restore_sigcontext()
268 err |= __get_user(used_math, &sc->sc_used_math); in restore_sigcontext()
274 err = check_and_restore_fp_context(sc); in restore_sigcontext()
633 static int smp_save_fp_context(struct sigcontext __user *sc) in smp_save_fp_context() argument
636 ? _save_fp_context(sc) in smp_save_fp_context()
637 : copy_fp_to_sigcontext(sc); in smp_save_fp_context()
640 static int smp_restore_fp_context(struct sigcontext __user *sc) in smp_restore_fp_context() argument
643 ? _restore_fp_context(sc) in smp_restore_fp_context()
644 : copy_fp_from_sigcontext(sc); in smp_restore_fp_context()