From 80c9bfc4668e2370b3434a801dc266f336265832 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 30 May 2012 01:40:33 -0400 Subject: pread/pwrite: drop fallback funcs Linux has provided these functions since the 2.1.x era, so no need to keep these around. We'd rather find out when things are missing (and fix that) than fall back to the unsafe hacks. Signed-off-by: Mike Frysinger --- libc/sysdeps/linux/common/pread_write.c | 112 -------------------------------- 1 file changed, 112 deletions(-) (limited to 'libc/sysdeps/linux/common') diff --git a/libc/sysdeps/linux/common/pread_write.c b/libc/sysdeps/linux/common/pread_write.c index 089ee934d..48fe7dd4b 100644 --- a/libc/sysdeps/linux/common/pread_write.c +++ b/libc/sysdeps/linux/common/pread_write.c @@ -83,115 +83,3 @@ ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset) weak_alias(__libc_pwrite64,pwrite64) # endif /* __UCLIBC_HAS_LFS__ */ #endif /* __NR_pwrite */ - -#if ! defined __NR_pread || ! defined __NR_pwrite - -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 - * 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) - return -1; - - if (do_pwrite == 1) { - /* Write the data. */ - result = write(fd, buf, count); - } else { - /* Read the data. */ - result = read(fd, buf, count); - } - - /* 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) - { - if (result == -1) - __set_errno(save_errno); - return -1; - } - __set_errno(save_errno); - return(result); -} - -# ifdef __UCLIBC_HAS_LFS__ - -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 - * 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 (do_pwrite == 1) { - /* Write the data. */ - result = write(fd, buf, count); - } else { - /* Read the data. */ - result = read(fd, buf, count); - } - - /* Now we have to restore the position. */ - save_errno = errno; - if (lseek64(fd, old_offset, SEEK_SET) == (off64_t) -1) { - if (result == -1) - __set_errno (save_errno); - return -1; - } - __set_errno (save_errno); - return result; -} -# endif /* __UCLIBC_HAS_LFS__ */ -#endif /* ! defined __NR_pread || ! defined __NR_pwrite */ - -#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); -} -weak_alias(__libc_pread,pread) - -# 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); -} -weak_alias(__libc_pread64,pread64) -# endif /* __UCLIBC_HAS_LFS__ */ -#endif /* ! __NR_pread */ - -#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, - *just cast it to get rid of warnings */ - return __fake_pread_write(fd, (void*)buf, count, offset, 1); -} -weak_alias(__libc_pwrite,pwrite) - -# 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); -} -weak_alias(__libc_pwrite64,pwrite64) -# endif /* __UCLIBC_HAS_LFS__ */ -#endif /* ! __NR_pwrite */ -- cgit v1.2.3