#include "stdio_impl.h"
-
-static off_t retneg1(FILE *f, off_t off, int whence)
-{
- errno = ESPIPE;
- return -1;
-}
+#include <unistd.h>
off_t __stdio_seek(FILE *f, off_t off, int whence)
{
- 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
- /* Detect unseekable files and optimize future failures out */
- if (ret < 0 && errno == ESPIPE) f->seek = retneg1;
- return ret;
+ return __lseek(f->fd, off, whence);
}