glibc/libio
Siddhesh Poyarekar 000232b9bc Separate ftell from fseek logic and avoid modifying FILE data (#16532)
ftell semantics are distinct from fseek(SEEK_CUR) especially when it
is called on a file handler that is not yet active.  Due to this
caveat, much care needs to be taken while modifying the handler data
and hence, this first iteration on separating out ftell focusses on
maintaining handler data integrity at all times while it figures out
the current stream offset.  The result is that it makes a syscall for
every offset request.

There is scope for optimizing this by caching offsets when we know
that the handler is active.  A simple way to find out is when the
buffers have data.  It is not so simple to find this out when the
buffer is empty without adding some kind of flag.
2014-03-04 07:45:58 +05:30
..
bits Complete _BSD_SOURCE / _SVID_source followup cleanup. 2014-02-21 21:45:26 +00:00
__fbufsize.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
__flbf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
__fpending.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
__fpurge.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
__freadable.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
__freading.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
__fsetlocking.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
__fwritable.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
__fwriting.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bug-fopena+.c Update. 2002-08-27 06:41:29 +00:00
bug-fseek.c Update. 2002-07-24 11:18:48 +00:00
bug-ftell.c * libio/bug-ftell.c (do_test): Add a cast. 2003-11-01 21:11:05 +00:00
bug-memstream1.c [BZ #1996] 2006-08-14 22:16:14 +00:00
bug-mmap-fflush.c Update. 2002-08-27 12:10:11 +00:00
bug-rewind2.c Update. 2002-08-26 08:08:50 +00:00
bug-rewind.c Update. 2002-08-26 08:08:50 +00:00
bug-ungetc2.c Update. 2003-09-06 09:56:14 +00:00
bug-ungetc3.c Update. 2004-11-09 07:05:27 +00:00
bug-ungetc4.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bug-ungetc.c 2002-07-24 Roland McGrath <roland@frob.com> 2002-07-24 09:34:59 +00:00
bug-ungetwc1.c
bug-ungetwc2.c
bug-wfflush.c * libio/bug-wfflush.c (do_test): Call rewind instead of fsetpos. 2002-11-11 06:55:22 +00:00
bug-wmemstream1.c * posix/glob.c (glob_in_dir): Add some comments and asserts to 2006-09-30 15:09:35 +00:00
bug-wsetpos.c Fix fsetpos on wide stream. 2009-09-02 19:45:33 -07:00
clearerr_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
clearerr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Depend
fcloseall.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
feof_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
feof.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ferror_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ferror.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
filedoalloc.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
fileno.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fileops.c Separate ftell from fseek logic and avoid modifying FILE data (#16532) 2014-03-04 07:45:58 +05:30
fmemopen.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
fputc_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fputc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fputwc_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fputwc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
freopen64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
freopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fseek.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fseeko64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fseeko.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ftello64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ftello.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fwide.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fwprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fwscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
genops.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getc_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getchar_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getchar.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getwc_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getwc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getwchar_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getwchar.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofclose.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofdopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofflush_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofflush.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofgetpos64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofgetpos.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofgets_u.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
iofgets.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
iofgetws_u.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
iofgetws.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
iofopen64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofopncook.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofputs_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofputs.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofputws_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofputws.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofread_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofread.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofsetpos64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofsetpos.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ioftell.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofwide.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofwrite_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iofwrite.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iogetdelim.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
iogetline.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iogets.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iogetwline.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iolibio.h Remove use of INTDEF/INTUSE in libio 2012-05-24 23:06:20 +02:00
iopadn.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iopopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ioputs.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ioseekoff.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ioseekpos.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iosetbuffer.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iosetvbuf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ioungetc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ioungetwc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iovdprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iovsprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iovsscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iovswscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
iowpadn.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
libc_fatal.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
libio.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
libioP.h Separate ftell from fseek logic and avoid modifying FILE data (#16532) 2014-03-04 07:45:58 +05:30
Makefile Separate ftell from fseek logic and avoid modifying FILE data (#16532) 2014-03-04 07:45:58 +05:30
memstream.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
obprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldfileops.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldiofclose.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldiofdopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldiofgetpos64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldiofgetpos.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldiofopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldiofsetpos64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldiofsetpos.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldiopopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldpclose.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldstdfiles.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
oldtmpfile.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
pclose.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
peekc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putc_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putchar_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putchar.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putwc_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putwc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putwchar_u.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putwchar.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
rewind.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
setbuf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
setlinebuf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stdfiles.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stdio.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stdio.h Complete _BSD_SOURCE / _SVID_source followup cleanup. 2014-02-21 21:45:26 +00:00
strfile.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strops.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
swprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
swscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
test-fmemopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
test-freopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
test-freopen.sh Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst_getwc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst_getwc.input
tst_putwc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst_swprintf.c Fix format strings. 2002-09-30 07:47:16 +00:00
tst_swscanf.c
tst_wprintf2.c
tst_wprintf.c
tst_wscanf.c
tst_wscanf.input
tst-atime.c Update. 2002-09-05 10:28:51 +00:00
tst-eof.c pdate. 2002-07-23 00:31:41 +00:00
tst-ext2.c * libio/Makefile (tests): Add tst-ext2. 2007-10-13 07:33:09 +00:00
tst-ext.c
tst-fgetwc.c (do_test): Use de_DE.UTF-8 as locale name. 2009-06-15 17:27:48 -07:00
tst-fgetwc.input 2009-02-04 Ulrich Drepper <drepper@redhat.com> 2009-02-04 21:27:48 +00:00
tst-fgetws.c Fix format strings. 2002-09-30 07:47:16 +00:00
tst-fopenloc2.c [BZ #2173] 2006-01-19 01:35:28 +00:00
tst-fopenloc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-freopen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-fseek.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-ftell-active-handler.c Separate ftell from fseek logic and avoid modifying FILE data (#16532) 2014-03-04 07:45:58 +05:30
tst-ftell-partial-wide.c Fix infinite loop in ftell when writing wide char data (BZ #16398) 2014-02-05 12:49:00 +05:30
tst-fwrite-error.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-memstream1.c * libio/wmemstream.c: New file. 2006-01-12 02:03:42 +00:00
tst-memstream2.c * libio/wmemstream.c: New file. 2006-01-12 02:03:42 +00:00
tst-mmap2-eofsync.c * catgets/open_catalog.c (__open_catalog): Don't use a value type 2002-09-24 04:24:25 +00:00
tst-mmap-eofsync.c * locale/xlocale.h (struct __locale_struct): New member `__names'. 2002-08-30 10:36:44 +00:00
tst-mmap-fflushsync.c * locale/xlocale.h (struct __locale_struct): New member `__names'. 2002-08-30 10:36:44 +00:00
tst-mmap-offend.c * locale/xlocale.h (struct __locale_struct): New member `__names'. 2002-08-30 10:36:44 +00:00
tst-mmap-setvbuf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-popen1.c * sysdeps/unix/sysv/linux/syscalls.list: Add __pipe2 alias. 2008-07-27 18:26:13 +00:00
tst-setvbuf1.c [BZ #2337] 2006-12-13 23:17:54 +00:00
tst-sscanf.c
tst-swscanf.c
tst-ungetwc1.c
tst-ungetwc2.c
tst-widetext.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-widetext.input Rename Oriya locale to Odia (bug 15601) 2013-11-20 17:47:41 +05:30
tst-wmemstream1.c * posix/glob.c (glob_in_dir): Add some comments and asserts to 2006-09-30 15:09:35 +00:00
tst-wmemstream2.c * posix/glob.c (glob_in_dir): Add some comments and asserts to 2006-09-30 15:09:35 +00:00
vasprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Versions Remove mention of open_obstack_stream, which has never existed in libio. 2011-10-26 16:53:02 -07:00
vscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
vsnprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
vswprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
vwprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
vwscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wfiledoalloc.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wfileops.c Separate ftell from fseek logic and avoid modifying FILE data (#16532) 2014-03-04 07:45:58 +05:30
wgenops.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wmemstream.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wstrops.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00