[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 */