patch-2.4.20 linux-2.4.20/arch/parisc/lib/lusercopy.S
Next file: linux-2.4.20/arch/parisc/lib/memset.c
Previous file: linux-2.4.20/arch/parisc/lib/io.c
Back to the patch index
Back to the overall index
- Lines: 122
- Date:
Thu Nov 28 15:53:10 2002
- Orig file:
linux-2.4.19/arch/parisc/lib/lusercopy.S
- Orig date:
Tue Dec 5 12:29:39 2000
diff -urN linux-2.4.19/arch/parisc/lib/lusercopy.S linux-2.4.20/arch/parisc/lib/lusercopy.S
@@ -1,5 +1,5 @@
-/*------------------------------------------------------------------------------
- * Native PARISC/Linux Project (http://www.puffingroup.com/parisc)
+/*
+ * Linux/PA-RISC Project (http://www.parisc-linux.org/)
*
* Assembly Language User Access Routines
* Copyright (C) 2000 Hewlett-Packard (John Marvin)
@@ -30,7 +30,6 @@
*/
- .level 1.1
.text
#include <asm/assembly.h>
@@ -42,11 +41,8 @@
* on the flag stored in the task structure.
*/
- /* FIXME! depi below has hardcoded idea of kernel stack size */
-
.macro get_sr
- copy %r30,%r1 ;! Get task structure
- depi 0,31,14,%r1 ;! into r1
+ mfctl %cr30,%r1
ldw TASK_SEGMENT(%r1),%r22
mfsp %sr3,%r1
or,<> %r22,%r0,%r0
@@ -82,7 +78,11 @@
ldo 1(%r24),%r24
.section __ex_table,"a"
+#ifdef __LP64__
+ .dword 1b,(2b-1b)
+#else
.word 1b,(2b-1b)
+#endif
.previous
.procend
@@ -123,7 +123,11 @@
nop
.section __ex_table,"a"
+#ifdef __LP64__
+ .dword 1b,(2b-1b)
+#else
.word 1b,(2b-1b)
+#endif
.previous
.procend
@@ -133,7 +137,7 @@
*
* Returns -EFAULT if exception before terminator,
* N if the entire buffer filled,
- * otherwise strlen + 1 (i.e. includes zero byte)
+ * otherwise strlen (i.e. excludes zero byte)
*/
.export lstrncpy_from_user,code
@@ -142,7 +146,7 @@
.callinfo NO_CALLS
.entry
comib,= 0,%r24,$lsfu_done
- copy %r26,%r23
+ copy %r24,%r23
get_sr
1: ldbs,ma 1(%sr1,%r25),%r1
$lsfu_loop:
@@ -151,7 +155,7 @@
addib,<>,n -1,%r24,$lsfu_loop
2: ldbs,ma 1(%sr1,%r25),%r1
$lsfu_done:
- sub %r26,%r23,%r28
+ sub %r23,%r24,%r28
$lsfu_exit:
bv %r0(%r2)
nop
@@ -161,8 +165,13 @@
ldi -EFAULT,%r28
.section __ex_table,"a"
+#ifdef __LP64__
+ .dword 1b,(3b-1b)
+ .dword 2b,(3b-2b)
+#else
.word 1b,(3b-1b)
- .word 2b,(2b-1b)
+ .word 2b,(3b-2b)
+#endif
.previous
.procend
@@ -194,7 +203,11 @@
ldo 1(%r25),%r25
.section __ex_table,"a"
+#ifdef __LP64__
+ .dword 1b,(2b-1b)
+#else
.word 1b,(2b-1b)
+#endif
.previous
.procend
@@ -233,8 +246,13 @@
copy %r24,%r26 /* reset r26 so 0 is returned on fault */
.section __ex_table,"a"
+#ifdef __LP64__
+ .dword 1b,(3b-1b)
+ .dword 2b,(3b-2b)
+#else
.word 1b,(3b-1b)
- .word 2b,(2b-1b)
+ .word 2b,(3b-2b)
+#endif
.previous
.procend
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)