Module Name: src
Committed By: snj
Date: Thu Apr 23 02:11:53 UTC 2009
Modified Files:
src/sys/arch/vax/vax [netbsd-3]: subr.S
Log Message:
Pull up following revision(s) (requested by mhitch in ticket #2010):
sys/arch/vax/vax/subr.S: revision 1.26
Apply patch from mhitch@:
Make copyin(9) and copyout(9) work with 64KB or larger data blocks.
Fixes broken pipe(2) problem mentioned in PR port-vax/41139. Ok'ed by ra...@.
Should be pulled up to netbsd-5.
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.10.14.1 src/sys/arch/vax/vax/subr.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/vax/vax/subr.S
diff -u src/sys/arch/vax/vax/subr.S:1.10 src/sys/arch/vax/vax/subr.S:1.10.14.1
--- src/sys/arch/vax/vax/subr.S:1.10 Sun Jan 4 11:33:31 2004
+++ src/sys/arch/vax/vax/subr.S Thu Apr 23 02:11:53 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: subr.S,v 1.10 2004/01/04 11:33:31 jdolecek Exp $ */
+/* $NetBSD: subr.S,v 1.10.14.1 2009/04/23 02:11:53 snj Exp $ */
/*
* Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -479,7 +479,7 @@
#
ENTRY(copyout, 0)
- movl 8(%ap),%r2
+ movl 8(%ap),%r3
blss 3f # kernel space
movl 4(%ap),%r1
brb 2f
@@ -487,13 +487,18 @@
ENTRY(copyin, 0)
movl 4(%ap),%r1
blss 3f # kernel space
- movl 8(%ap),%r2
-2: mfpr $PR_ESP,%r3
- movab 1f,(%r3)
- movc3 12(%ap),(%r1),(%r2)
-1: mfpr $PR_ESP,%r3
- clrl (%r3)
+ movl 8(%ap),%r3
+2: mfpr $PR_ESP,%r2
+ movab 1f,(%r2)
+4: tstw 14(%ap) # check if >= 64K
+ bneq 5f
+ movc3 12(%ap),(%r1),(%r3)
+1: mfpr $PR_ESP,%r2
+ clrl (%r2)
ret
+5: movc3 $0xfffc,(%r1),(%r3)
+ subl2 $0xfffc,12(%ap)
+ brb 4b
3: mnegl $1,%r0
ret