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
bug-fseek.c
bug-ftell.c
bug-memstream1.c
bug-mmap-fflush.c
bug-rewind2.c
bug-rewind.c
bug-ungetc2.c
bug-ungetc3.c
bug-ungetc4.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bug-ungetc.c
bug-ungetwc1.c
bug-ungetwc2.c
bug-wfflush.c
bug-wmemstream1.c
bug-wsetpos.c
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
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
tst_swscanf.c
tst_wprintf2.c
tst_wprintf.c
tst_wscanf.c
tst_wscanf.input
tst-atime.c
tst-eof.c
tst-ext2.c
tst-ext.c
tst-fgetwc.c
tst-fgetwc.input
tst-fgetws.c
tst-fopenloc2.c
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
tst-memstream2.c
tst-mmap2-eofsync.c
tst-mmap-eofsync.c
tst-mmap-fflushsync.c
tst-mmap-offend.c
tst-mmap-setvbuf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-popen1.c
tst-setvbuf1.c
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
tst-wmemstream2.c
vasprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Versions
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