X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fstdio%2F__stdio_seek.c;h=13e06a663eff8e4cb79cabf33c4ec08df20e570e;hp=fdb9fe7f2ff086ee364065fa68506c0b6eed1563;hb=c8cb6bcdf009e94c12c6e256b8e24a9bc5fdaf05;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01 diff --git a/src/stdio/__stdio_seek.c b/src/stdio/__stdio_seek.c index fdb9fe7f..13e06a66 100644 --- a/src/stdio/__stdio_seek.c +++ b/src/stdio/__stdio_seek.c @@ -1,15 +1,13 @@ #include "stdio_impl.h" -static off_t retneg1(FILE *f, off_t off, int whence) -{ - return -1; -} - off_t __stdio_seek(FILE *f, off_t off, int whence) { - off_t ret = __syscall_lseek(f->fd, off, whence); - /* Detect unseekable files and optimize future failures out */ - if (ret < 0 && off == 0 && whence == SEEK_CUR) - f->seek = retneg1; + off_t ret; +#ifdef SYS__llseek + if (syscall(SYS__llseek, f->fd, off>>32, off, &ret, whence)<0) + ret = -1; +#else + ret = syscall(SYS_lseek, f->fd, off, whence); +#endif return ret; }