about summary refs log tree commit diff
path: root/src/unistd/lseek.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-02-13 22:45:42 -0500
committerRich Felker <dalias@aerifal.cx>2011-02-13 22:45:42 -0500
commit2cdfb7ca26f46f151afbc23d5d94fc68597137f5 (patch)
tree0baa2cd0776f2a44997950e0bc8ab646dc2067b2 /src/unistd/lseek.c
parent978ca016593077d27cc2a828f21c5e45e57074aa (diff)
downloadmusl-2cdfb7ca26f46f151afbc23d5d94fc68597137f5.tar.gz
musl-2cdfb7ca26f46f151afbc23d5d94fc68597137f5.tar.xz
musl-2cdfb7ca26f46f151afbc23d5d94fc68597137f5.zip
cleaning up syscalls in preparation for x86_64 port
- hide all the legacy xxxxxx32 name cruft in syscall.h so the actual
source files can be clean and uniform across all archs.

- cleanup llseek/lseek and mmap2/mmap handling for 32/64 bit systems

- alternate implementation for nice if the target lacks nice syscall
Diffstat (limited to 'src/unistd/lseek.c')
-rw-r--r--src/unistd/lseek.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/unistd/lseek.c b/src/unistd/lseek.c
index 0dab2679..0152866f 100644
--- a/src/unistd/lseek.c
+++ b/src/unistd/lseek.c
@@ -4,13 +4,12 @@
 
 off_t lseek(int fd, off_t offset, int whence)
 {
-	/* optimized away at compiletime */
-	if (sizeof(long) == 8)
-		return syscall3(__NR_lseek, fd, offset, whence);
-	else {
-		off_t result;
-		return syscall5(__NR__llseek, fd, offset>>32, offset, (long)&result, whence) ? -1 : result;
-	}
+#ifdef __NR__llseek
+	off_t result;
+	return syscall5(__NR__llseek, fd, offset>>32, offset, (long)&result, whence) ? -1 : result;
+#else
+	return syscall3(__NR_lseek, fd, offset, whence);
+#endif
 }
 
 LFS64(lseek);