diff options
Diffstat (limited to 'libc/sysdeps/linux/common')
-rw-r--r-- | libc/sysdeps/linux/common/pread_write.c | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/libc/sysdeps/linux/common/pread_write.c b/libc/sysdeps/linux/common/pread_write.c index bcd19996e..1d068067b 100644 --- a/libc/sysdeps/linux/common/pread_write.c +++ b/libc/sysdeps/linux/common/pread_write.c @@ -7,7 +7,7 @@ /* * Based in part on the files * ./sysdeps/unix/sysv/linux/pwrite.c, - * ./sysdeps/unix/sysv/linux/pread.c, + * ./sysdeps/unix/sysv/linux/pread.c, * sysdeps/posix/pread.c * sysdeps/posix/pwrite.c * from GNU libc 2.2.5, but reworked considerably... @@ -28,22 +28,22 @@ extern __typeof(pwrite64) __libc_pwrite64; #ifdef __NR_pread -# define __NR___syscall_pread __NR_pread -static inline _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf, +# define __NR___syscall_pread __NR_pread +static inline _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf, size_t, count, off_t, offset_hi, off_t, offset_lo); ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset) -{ - return(__syscall_pread(fd,buf,count,__LONG_LONG_PAIR (offset >> 31, offset))); +{ + return __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset)); } weak_alias(__libc_pread,pread) -# ifdef __UCLIBC_HAS_LFS__ +# ifdef __UCLIBC_HAS_LFS__ ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset) -{ +{ uint32_t low = offset & 0xffffffff; uint32_t high = offset >> 32; - return(__syscall_pread(fd, buf, count, __LONG_LONG_PAIR (high, low))); + return __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(high, low)); } weak_alias(__libc_pread64,pread64) # endif /* __UCLIBC_HAS_LFS__ */ @@ -52,22 +52,22 @@ weak_alias(__libc_pread64,pread64) #ifdef __NR_pwrite -# define __NR___syscall_pwrite __NR_pwrite -static inline _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf, +# define __NR___syscall_pwrite __NR_pwrite +static inline _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf, size_t, count, off_t, offset_hi, off_t, offset_lo); ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset) -{ - return(__syscall_pwrite(fd,buf,count,__LONG_LONG_PAIR (offset >> 31, offset))); +{ + return __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset)); } weak_alias(__libc_pwrite,pwrite) -# ifdef __UCLIBC_HAS_LFS__ +# ifdef __UCLIBC_HAS_LFS__ ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset) -{ +{ uint32_t low = offset & 0xffffffff; uint32_t high = offset >> 32; - return(__syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR (high, low))); + return __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(high, low)); } weak_alias(__libc_pwrite64,pwrite64) # endif /* __UCLIBC_HAS_LFS__ */ @@ -78,23 +78,23 @@ libc_hidden_proto(read) libc_hidden_proto(write) libc_hidden_proto(lseek) -static ssize_t __fake_pread_write(int fd, void *buf, +static ssize_t __fake_pread_write(int fd, void *buf, size_t count, off_t offset, int do_pwrite) { int save_errno; ssize_t result; off_t old_offset; - /* Since we must not change the file pointer preserve the + /* Since we must not change the file pointer preserve the * value so that we can restore it later. */ if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1) return -1; /* Set to wanted position. */ - if (lseek (fd, offset, SEEK_SET) == (off_t) -1) + if (lseek(fd, offset, SEEK_SET) == (off_t) -1) return -1; - if (do_pwrite==1) { + if (do_pwrite == 1) { /* Write the data. */ result = write(fd, buf, count); } else { @@ -102,7 +102,7 @@ static ssize_t __fake_pread_write(int fd, void *buf, result = read(fd, buf, count); } - /* Now we have to restore the position. If this fails we + /* Now we have to restore the position. If this fails we * have to return this as an error. */ save_errno = errno; if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1) @@ -115,26 +115,26 @@ static ssize_t __fake_pread_write(int fd, void *buf, return(result); } -# ifdef __UCLIBC_HAS_LFS__ +# ifdef __UCLIBC_HAS_LFS__ libc_hidden_proto(lseek64) -static ssize_t __fake_pread_write64(int fd, void *buf, +static ssize_t __fake_pread_write64(int fd, void *buf, size_t count, off64_t offset, int do_pwrite) { int save_errno; ssize_t result; off64_t old_offset; - /* Since we must not change the file pointer preserve the + /* Since we must not change the file pointer preserve the * value so that we can restore it later. */ if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1) return -1; /* Set to wanted position. */ - if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1) - return -1; + if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1) + return -1; - if (do_pwrite==1) { + if (do_pwrite == 1) { /* Write the data. */ result = write(fd, buf, count); } else { @@ -144,7 +144,7 @@ static ssize_t __fake_pread_write64(int fd, void *buf, /* Now we have to restore the position. */ save_errno = errno; - if (lseek64 (fd, old_offset, SEEK_SET) == (off64_t) -1) { + if (lseek64(fd, old_offset, SEEK_SET) == (off64_t) -1) { if (result == -1) __set_errno (save_errno); return -1; @@ -158,14 +158,14 @@ static ssize_t __fake_pread_write64(int fd, void *buf, #ifndef __NR_pread ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset) { - return(__fake_pread_write(fd, buf, count, offset, 0)); + return __fake_pread_write(fd, buf, count, offset, 0); } weak_alias(__libc_pread,pread) -# ifdef __UCLIBC_HAS_LFS__ +# ifdef __UCLIBC_HAS_LFS__ ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset) -{ - return(__fake_pread_write64(fd, buf, count, offset, 0)); +{ + return __fake_pread_write64(fd, buf, count, offset, 0); } weak_alias(__libc_pread64,pread64) # endif /* __UCLIBC_HAS_LFS__ */ @@ -174,16 +174,16 @@ weak_alias(__libc_pread64,pread64) #ifndef __NR_pwrite ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset) { - /* we won't actually be modifying the buffer, + /* we won't actually be modifying the buffer, *just cast it to get rid of warnings */ - return(__fake_pread_write(fd, (void*)buf, count, offset, 1)); + return __fake_pread_write(fd, (void*)buf, count, offset, 1); } weak_alias(__libc_pwrite,pwrite) -# ifdef __UCLIBC_HAS_LFS__ +# ifdef __UCLIBC_HAS_LFS__ ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset) -{ - return(__fake_pread_write64(fd, (void*)buf, count, offset, 1)); +{ + return __fake_pread_write64(fd, (void*)buf, count, offset, 1); } weak_alias(__libc_pwrite64,pwrite64) # endif /* __UCLIBC_HAS_LFS__ */ |