Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
This commit is contained in:
47
arch/sparc/lib/strncpy_from_user.S
Normal file
47
arch/sparc/lib/strncpy_from_user.S
Normal file
@@ -0,0 +1,47 @@
|
||||
/* strncpy_from_user.S: Sparc strncpy from userspace.
|
||||
*
|
||||
* Copyright(C) 1996 David S. Miller
|
||||
*/
|
||||
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/errno.h>
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
/* Must return:
|
||||
*
|
||||
* -EFAULT for an exception
|
||||
* count if we hit the buffer limit
|
||||
* bytes copied if we hit a null byte
|
||||
*/
|
||||
|
||||
.globl __strncpy_from_user
|
||||
__strncpy_from_user:
|
||||
/* %o0=dest, %o1=src, %o2=count */
|
||||
mov %o2, %o3
|
||||
1:
|
||||
subcc %o2, 1, %o2
|
||||
bneg 2f
|
||||
nop
|
||||
10:
|
||||
ldub [%o1], %o4
|
||||
add %o0, 1, %o0
|
||||
cmp %o4, 0
|
||||
add %o1, 1, %o1
|
||||
bne 1b
|
||||
stb %o4, [%o0 - 1]
|
||||
2:
|
||||
add %o2, 1, %o0
|
||||
retl
|
||||
sub %o3, %o0, %o0
|
||||
|
||||
.section .fixup,#alloc,#execinstr
|
||||
.align 4
|
||||
4:
|
||||
retl
|
||||
mov -EFAULT, %o0
|
||||
|
||||
.section __ex_table,#alloc
|
||||
.align 4
|
||||
.word 10b, 4b
|
Reference in New Issue
Block a user