[parisc-linux-cvs] [linux-2.5] syscall update.

Ryan Bradetich rbradetich@uswest.net
30 Aug 2002 18:01:12 -0600


Here is the patch used to replace the sys_pread and sys_pwrite calls
whith the 2.5 equivalents: sys_pread64 and sys_pwrite64.

- Ryan

Index: syscall.S
===================================================================
RCS file: /var/cvs/linux-2.5/arch/parisc/kernel/syscall.S,v
retrieving revision 1.9
diff -u -p -r1.9 syscall.S
--- syscall.S	28 Jul 2002 14:14:23 -0000	1.9
+++ syscall.S	30 Aug 2002 23:58:26 -0000
@@ -477,8 +477,8 @@ sys_call_table:
 	ENTRY_DIFF(getitimer)	/* 105 */
 	ENTRY_SAME(capget)
 	ENTRY_SAME(capset)
-	ENTRY_DIFF(pread)
-	ENTRY_DIFF(pwrite)
+	ENTRY_DIFF(pread64)
+	ENTRY_DIFF(pwrite64)
 	ENTRY_SAME(getcwd)		/* 110 */
 	ENTRY_SAME(vhangup)
 	ENTRY_SAME(fstat64)
Index: sys_parisc32.c
===================================================================
RCS file: /var/cvs/linux-2.5/arch/parisc/kernel/sys_parisc32.c,v
retrieving revision 1.7
diff -u -p -r1.7 sys_parisc32.c
--- sys_parisc32.c	30 Jul 2002 06:03:25 -0000	1.7
+++ sys_parisc32.c	30 Aug 2002 23:58:26 -0000
@@ -2737,8 +2737,6 @@ asmlinkage long sys32_msgrcv(int msqid,
 extern asmlinkage long sys_truncate(const char *, loff_t);
 extern asmlinkage long sys_ftruncate(unsigned int, loff_t);
 extern asmlinkage long sys_fcntl(unsigned int, unsigned int, unsigned long);
-extern asmlinkage ssize_t sys_pread(unsigned int, char *, size_t, loff_t);
-extern asmlinkage ssize_t sys_pwrite(unsigned int, char *, size_t, loff_t);
 
 asmlinkage long sys32_truncate64(const char * path, unsigned int high, unsigned int low)
 {
@@ -2768,14 +2766,23 @@ asmlinkage long sys32_fcntl64(unsigned i
 	return sys_fcntl(fd, cmd, arg);
 }
 
-asmlinkage int sys32_pread(int fd, void *buf, size_t count, unsigned int high, unsigned int low)
+#if BITS_PER_LONG == 32
+#ifdef __BIG_ENDIAN 
+#define LOFF_T(high, low) unsigned int high, unsigned int low
+#else    
+#define LOFF_T(high, low) unsigned int low, unsigned int high
+#nendif
+
+asmlinkage int sys32_pread(int fd, void *buf, size_t count, LOFF_T(high, low))
 {
-	return sys_pread(fd, buf, count, (loff_t)high << 32 | low);
+	extern asmlinkage long sys_pread64 (unsigned int, char *, size_t, loff_t);
+	return sys_pread64(fd, buf, count, ((unsigned long) high << 32) | low);
 }
 
-asmlinkage int sys32_pwrite(int fd, void *buf, size_t count, unsigned int high, unsigned int low)
+asmlinkage int sys32_pwrite(int fd, void *buf, size_t count, LOFF_T(high,low))
 {
-       return sys_pwrite(fd, buf, count, (loff_t)high << 32 | low);
+	extern asmlinkage long sys_pwrite64 (unsigned int, const char *, size_t, loff_t);
+	return sys_pwrite64(fd, buf, count, ((unsigned long) high << 32) | low);
 }
 
 /* EXPORT/UNEXPORT */