Lines Matching refs:sc
45 static int (*save_fp_context)(void __user *sc);
46 static int (*restore_fp_context)(void __user *sc);
69 static int copy_fp_to_sigcontext(void __user *sc) in copy_fp_to_sigcontext() argument
72 uint64_t __user *fpregs = sc + abi->off_sc_fpregs; in copy_fp_to_sigcontext()
73 uint32_t __user *csr = sc + abi->off_sc_fpc_csr; in copy_fp_to_sigcontext()
88 static int copy_fp_from_sigcontext(void __user *sc) in copy_fp_from_sigcontext() argument
91 uint64_t __user *fpregs = sc + abi->off_sc_fpregs; in copy_fp_from_sigcontext()
92 uint32_t __user *csr = sc + abi->off_sc_fpc_csr; in copy_fp_from_sigcontext()
110 static int save_hw_fp_context(void __user *sc) in save_hw_fp_context() argument
113 uint64_t __user *fpregs = sc + abi->off_sc_fpregs; in save_hw_fp_context()
114 uint32_t __user *csr = sc + abi->off_sc_fpc_csr; in save_hw_fp_context()
119 static int restore_hw_fp_context(void __user *sc) in restore_hw_fp_context() argument
122 uint64_t __user *fpregs = sc + abi->off_sc_fpregs; in restore_hw_fp_context()
123 uint32_t __user *csr = sc + abi->off_sc_fpc_csr; in restore_hw_fp_context()
132 static inline void __user *sc_to_extcontext(void __user *sc) in sc_to_extcontext() argument
141 uc = container_of(sc, struct ucontext, uc_mcontext); in sc_to_extcontext()
296 int protected_save_fp_context(void __user *sc) in protected_save_fp_context() argument
299 uint64_t __user *fpregs = sc + abi->off_sc_fpregs; in protected_save_fp_context()
300 uint32_t __user *csr = sc + abi->off_sc_fpc_csr; in protected_save_fp_context()
301 uint32_t __user *used_math = sc + abi->off_sc_used_math; in protected_save_fp_context()
324 err = save_fp_context(sc); in protected_save_fp_context()
328 err = copy_fp_to_sigcontext(sc); in protected_save_fp_context()
341 ext_sz = err = save_extcontext(sc_to_extcontext(sc)); in protected_save_fp_context()
349 int protected_restore_fp_context(void __user *sc) in protected_restore_fp_context() argument
352 uint64_t __user *fpregs = sc + abi->off_sc_fpregs; in protected_restore_fp_context()
353 uint32_t __user *csr = sc + abi->off_sc_fpc_csr; in protected_restore_fp_context()
354 uint32_t __user *used_math = sc + abi->off_sc_used_math; in protected_restore_fp_context()
387 err = restore_fp_context(sc); in protected_restore_fp_context()
391 err = copy_fp_from_sigcontext(sc); in protected_restore_fp_context()
405 err = restore_extcontext(sc_to_extcontext(sc)); in protected_restore_fp_context()
410 int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) in setup_sigcontext() argument
415 err |= __put_user(regs->cp0_epc, &sc->sc_pc); in setup_sigcontext()
417 err |= __put_user(0, &sc->sc_regs[0]); in setup_sigcontext()
419 err |= __put_user(regs->regs[i], &sc->sc_regs[i]); in setup_sigcontext()
422 err |= __put_user(regs->acx, &sc->sc_acx); in setup_sigcontext()
424 err |= __put_user(regs->hi, &sc->sc_mdhi); in setup_sigcontext()
425 err |= __put_user(regs->lo, &sc->sc_mdlo); in setup_sigcontext()
427 err |= __put_user(mfhi1(), &sc->sc_hi1); in setup_sigcontext()
428 err |= __put_user(mflo1(), &sc->sc_lo1); in setup_sigcontext()
429 err |= __put_user(mfhi2(), &sc->sc_hi2); in setup_sigcontext()
430 err |= __put_user(mflo2(), &sc->sc_lo2); in setup_sigcontext()
431 err |= __put_user(mfhi3(), &sc->sc_hi3); in setup_sigcontext()
432 err |= __put_user(mflo3(), &sc->sc_lo3); in setup_sigcontext()
433 err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp); in setup_sigcontext()
441 err |= protected_save_fp_context(sc); in setup_sigcontext()
487 int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) in restore_sigcontext() argument
496 err |= __get_user(regs->cp0_epc, &sc->sc_pc); in restore_sigcontext()
499 err |= __get_user(regs->acx, &sc->sc_acx); in restore_sigcontext()
501 err |= __get_user(regs->hi, &sc->sc_mdhi); in restore_sigcontext()
502 err |= __get_user(regs->lo, &sc->sc_mdlo); in restore_sigcontext()
504 err |= __get_user(treg, &sc->sc_hi1); mthi1(treg); in restore_sigcontext()
505 err |= __get_user(treg, &sc->sc_lo1); mtlo1(treg); in restore_sigcontext()
506 err |= __get_user(treg, &sc->sc_hi2); mthi2(treg); in restore_sigcontext()
507 err |= __get_user(treg, &sc->sc_lo2); mtlo2(treg); in restore_sigcontext()
508 err |= __get_user(treg, &sc->sc_hi3); mthi3(treg); in restore_sigcontext()
509 err |= __get_user(treg, &sc->sc_lo3); mtlo3(treg); in restore_sigcontext()
510 err |= __get_user(treg, &sc->sc_dsp); wrdsp(treg, DSP_MASK); in restore_sigcontext()
514 err |= __get_user(regs->regs[i], &sc->sc_regs[i]); in restore_sigcontext()
516 return err ?: protected_restore_fp_context(sc); in restore_sigcontext()
869 static int smp_save_fp_context(void __user *sc) in smp_save_fp_context() argument
872 ? save_hw_fp_context(sc) in smp_save_fp_context()
873 : copy_fp_to_sigcontext(sc); in smp_save_fp_context()
876 static int smp_restore_fp_context(void __user *sc) in smp_restore_fp_context() argument
879 ? restore_hw_fp_context(sc) in smp_restore_fp_context()
880 : copy_fp_from_sigcontext(sc); in smp_restore_fp_context()