// SPDX-License-Identifier: GPL-2.0 // Copyright (C) 2005-2017 Andes Technology Corporation #include #include #include .macro lbi1 dst, addr, adj USER( lbi.bi, \dst, [\addr], \adj) .endm .macro sbi1 src, addr, adj sbi.bi \src, [\addr], \adj .endm .macro lmw1 start_reg, addr, end_reg USER( lmw.bim, \start_reg, [\addr], \end_reg) .endm .macro smw1 start_reg, addr, end_reg smw.bim \start_reg, [\addr], \end_reg .endm /* Prototype: int __arch_copy_from_user(void *to, const char *from, size_t n) * Purpose : copy a block from user memory to kernel memory * Params : to - kernel memory * : from - user memory * : n - number of bytes to copy * Returns : Number of bytes NOT copied. */ .text ENTRY(__arch_copy_from_user) add $r5, $r0, $r2 #include "copy_template.S" move $r0, $r2 ret .section .fixup,"ax" .align 2 9001: sub $r0, $r5, $r0 ret .previous ENDPROC(__arch_copy_from_user)