aboutsummaryrefslogtreecommitdiff
path: root/manual/llio.texi
AgeCommit message (Collapse)AuthorFilesLines
2021-08-27Update RWF_SUPPORTED for Linux kernel 4.16 [BZ #22947]H.J. Lu1-0/+3
Add RWF_APPEND to RWF_SUPPORTED to support Linux kernel 4.16. [BZ #22947] * bits/uio-ext.h (RWF_APPEND): New. * sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_APPEND): Likewise. * manual/llio.texi: Document RWF_APPEND. * misc/tst-preadvwritev2-common.c (RWF_APPEND): New. (RWF_SUPPORTED): Add RWF_APPEND. (cherry picked from commit f2652643d7234c08205b75f527191c2e2b35251f)
2017-12-22copy_file_range: New function to copy file dataFlorian Weimer1-0/+88
The semantics are based on the Linux system call, but a very close emulation in user space is provided.
2017-11-23Linux: Add memfd_create system call wrapperFlorian Weimer1-0/+63
The system call is somewhat obscure because it is closely related to file descriptor sealing. However, it is also the recommended way to create alias mappings, which is why it has more general use. No emulation is provided. Except for the name of the /proc/self/fd links, it would be possible to implement an approximation using O_TMPFILE and tmpfs, but this does not appear to be worth the added complexity. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-11-20manual: Document the MAP_HUGETLB, MADV_HUGEPAGE, MADV_NOHUGEPAGE flagsFlorian Weimer1-5/+49
2017-11-19manual: Document mprotect and introduce section on memory protectionFlorian Weimer1-11/+3
2017-11-19manual: Move preadv/writev variants to Scatter-Gather sectionFlorian Weimer1-211/+201
Also remove a comment about performance. fwrite vs writev performance is a very complex topic and cannot be reduced to a simple advice based on transfer size.
2017-11-04manual: Document the O_TMPFILE flagFlorian Weimer1-0/+28
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
2017-07-11posix: Add p{read,write}v2 RWF_NOWAIT flag (BZ#21738)Adhemerval Zanella1-0/+4
Linux 4.12 (b745fafaf70c0a98a2e1e7ac8cb14542889ceb0e) adds a new p{read,write}v2 flag RWF_NOWAIT. This patch adds it for linux uio-ext.h header. Checked on x86_64-linux-gnu (on a 4.10 kernel). [BZ #21738] * manual/llio.texi (RWF_NOWAIT): New item. * misc/tst-preadvwritev2-common.c (do_test_with_invalid_flags): Add RWF_NOWAIT check. * sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_NOWAIT): New flag.
2017-06-15manual: Replace summary.awk with summary.pl.Rical Jasan1-230/+115
The Summary is now generated from @standards, and syntax-checking is performed. If invalid @standards syntax is detected, summary.pl will fail, reporting all errors. Failure and error reporting is disabled for now, however, since much of the manual is still incomplete wrt. header and standards annotations. Note that the sorting order of the Summary has changed; summary.pl respects the locale, like summary.awk did, but the use of LC_ALL=C is introduced in the Makefile. Other notable deviations are improved detection of the annotated elements' names, which are used for sorting, and improved detection of the @node used to reference into the manual. The most noticeable difference in the rendered Summary is that entries may now contain multiple lines, one for each header and standard combination. summary.pl accepts a `--help' option, which details the expected syntax of @standards. If errors are reported, the user is directed to this feature for further information. * manual/Makefile: Generate summary.texi with summary.pl. Force use of the C locale. Update Perl dependency comment. * manual/header.texi: Update reference to summary.awk. * manual/macros.texi: Refer authors to `summary.pl --help'. * manual/summary.awk: Remove file. * manual/summary.pl: New file. Generate summary.texi, and check for @standards-related syntax errors. * manual/argp.texi: Convert header and standards @comments to @standards. * manual/arith.texi: Likewise. * manual/charset.texi: Likewise. * manual/conf.texi: Likewise. * manual/creature.texi: Likewise. * manual/crypt.texi: Likewise. * manual/ctype.texi: Likewise. * manual/debug.texi: Likewise. * manual/errno.texi: Likewise. * manual/filesys.texi: Likewise. * manual/getopt.texi: Likewise. * manual/job.texi: Likewise. * manual/lang.texi: Likewise. * manual/llio.texi: Likewise. * manual/locale.texi: Likewise. * manual/math.texi: Likewise. * manual/memory.texi: Likewise. * manual/message.texi: Likewise. * manual/pattern.texi: Likewise. * manual/pipe.texi: Likewise. * manual/process.texi: Likewise. * manual/resource.texi: Likewise. * manual/search.texi: Likewise. * manual/setjmp.texi: Likewise. * manual/signal.texi: Likewise. * manual/socket.texi: Likewise. * manual/startup.texi: Likewise. * manual/stdio.texi: Likewise. * manual/string.texi: Likewise. * manual/sysinfo.texi: Likewise. * manual/syslog.texi: Likewise. * manual/terminal.texi: Likewise. * manual/threads.texi: Likewise. * manual/time.texi: Likewise. * manual/users.texi: Likewise.
2017-05-31posix: Implement preadv2 and pwritev2Adhemerval Zanella1-0/+109
This patch adds support of preadv2 and pwritev2 which are similar to preadv/pwritev but with an extra flag argument. As for preadv/pwritev both interfaces are added a non-standard GNU API. For default 'posix' implementation trying to emulate the Linux supported flags is troublesome: * We can not temporary change the file state of the O_DSYNC and O_SYNC flags to emulate RWF_{D}SYNC (attempts to change the state of using fcntl are silently ignored). * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal semantic not provided by any other flag (O_NONBLOCK for instance). So default sysdeps/posix implementations fails with EOPNOTSUPP for any non supported flag (which are none currently) calls generic preadv/pwritev. Basically this implementation supports only preadv2 called as preadv (with flags sets to 0). The Linux one uses the preadv2/pwritev2 syscall if defined, otherwise it call preadv/writev. Instead of using the previous __ASSUME_* to unconditionally issue the syscall (and avoid building the fallback routine), it call pread/write if the preadv2/pwritev2 syscalls fails. The idea is just avoid adding another __ASSUME_* and checking each architecture on every kernel bump and simplify code conditionals. Checked on x86_64-linux-gnu and on i686-linux-gnu and a check with run-built-tests=no on aarch64-linux-gnu, alpha-linux-gnu, arm-linux-gnueabihf, ia64-linux-gnu, m68k-linux-gnu, microblaze-linux-gnu, mips{64,64n32}-linux-gnu, nios2-linux-gnu, powerpc{64,64le}-linux-gnu, s390{x}-linux-gnu, sparc{64,v9}-linux-gnu, tile{gx,pro}-linux-gnu, and sh4-linux-gnu (all using gcc 6.3). * NEWS: Add note about pwritev2 and preadv2 inclusion. * misc/Makefile (routines): Add preadv2, preadv64v2, pwritev2, and pwritev64v2. (tests): Add tst-preadvwritev2 and tst-preadvwritev64v2. * misc/Versions (GLIBC_2.26): Add preadv2, preadv64v2, pwritev2, and pwritev64v2. * misc/preadv2.c: New file. * misc/preadv64v2.c: Likewise. * misc/pwritev2.c: Likewise. * misc/pwritev64v2.c: Likewise. * misc/tst-preadvwritev2.c: Likewise. * misc/tst-preadvwritev64v2.c: Likewise. * manual/llio.texi: Add preadv2 and pwritev2 documentation. * misc/sys/uio.h [__USE_GNU && !__USE_FILE_OFFSET64] (preadv2): New prototype. [__USE_GNU && !__USE_FILE_OFFSET64] (pwritev2): Likewise. [__USE_GNU && __USE_FILE_OFFSET64] (preadv64v2): Likewise. [__USE_GNU && __USE_FILE_OFFSET64] (pwritev64v2): Likewise. * misc/tst-preadvwritev-common.c (PREADV): Define if not defined. (PWRITEV): Likewise. (do_test_with_offset): Use PREADV and PWRITEV macros and check for ENOSYS. * nptl/tst-cancel4.c (tf_pwritev2): New test. (tf_preadv2): Likewise. (tf_fsync): Add tf_pwritev2 and tf_preadv2. * sysdeps/posix/preadv2.c: Likewise. * sysdeps/posix/preadv64v2.c: Likewise. * sysdeps/posix/pwritev2.c: Likewise. * sysdeps/posix/pwritev64v2.c: Likewise. * sysdeps/unix/sysv/linux/kernel-features.h: Add comment for syscall support in kernel. * sysdeps/unix/sysv/linux/preadv2.c: Likewise. * sysdeps/unix/sysv/linux/preadv64v2.c: Likewise. * sysdeps/unix/sysv/linux/pwritev2.c: Likewise. * sysdeps/unix/sysv/linux/pwritev64v2.c: Likewise. * sysdeps/unix/sysv/linux/preadv.c (preadv): Add libc_hidden_def. * sysdeps/unix/sysv/linux/preadv64.c (preadv64): Likewise. * sysdeps/unix/sysv/linux/pwritev.c (pwritev): Likewise. * sysdeps/unix/sysv/linux/pwritev64.c (pwritev64): Likewise. * sysdeps/unix/sysv/linux/bits/uio.h: Add supported preadv2/pwritev2 support flags on Linux. * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.26): Add preadv2, preadv64v2, pwritev2, pwritev64v2. * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/sysv/linux/tile/tilegx/tilegx32/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/sysv/linux/tile/tilegx/tilegx64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.26): Likewise.
2017-05-04manual: Add preadv and pwritev documentationAdhemerval Zanella1-0/+102
* manual/llio.texi: Add preadv and pwritev documentation.
2016-12-21manual: Convert @tables of variables to @vtables.Rical Jasan1-20/+14
Texinfo @vindex commands add entries to the Variable and Constant Macro Index. Similarly, @items in @vtables are automatically indexed. A number of @tables exist where all @items are @vindexed or all @items are variables, but not indexed, suggesting an optimization by converting such @tables to @vtables and dropping the @vindex. Using a @vtable provides a context for processing @items whereby it can be known the @items should have header and standards annotations. This commit converts @tables of such @items to @vtables in order to establish a framework for automated processing. A pleasant consequence of these changes is that @items previously lacking a @vindex are present in the Variable and Constant Macro Index now. @vindex entries previously detected by summary.awk will still be detected as @items with appropriate annotations. The @vtable of the NSS databases is converted to a @table because 1) those @items are not variables (and will no longer appear in the Variable and Constant Macro Index) and 2) they do not need header and standards annotations, so the incorrect context is fixed. * manual/nss.texi: Change incorrect @vtable to @table. * manual/arith.texi: Convert @tables of variables to @vtables and remove unnecessary indexing. * manual/filesys.texi: Likewise. * manual/llio.texi: Likewise. * manual/memory.texi: Likewise. * manual/process.texi: Likewise. * manual/resource.texi: Likewise. * manual/search.texi: Likewise. * manual/signal.texi: Likewise. * manual/socket.texi: Likewise. * manual/stdio.texi: Likewise. * manual/sysinfo.texi: Likewise. * manual/syslog.texi: Likewise. * manual/terminal.texi: Likewise. * manual/time.texi: Likewise. * manual/users.texi: Likewise.
2016-10-06Manual typos: Low-Level Input/OutputRical Jasan1-37/+37
2016-05-06 Rical Jasan <ricaljasan@pacific.net> * manual/llio.texi: Fix typos in the manual.
2015-08-20Fix exponents in manual.Ondřej Bílka1-11/+11
* manual/macros.texi: Add twoexp macro. * manual/filesys.texi: Fix exponents. * manual/llio.texi: Likewise. * manual/stdio.texi: Likewise.
2014-11-06manual/llio.texi: Comment on write atomicity.Carlos O'Donell1-0/+5
We add Linux-realted comments about the atomicity of write with respect to file offsets. As of Linux 3.14 the file offset update is atomic. That means that multiple threads calling the write syscall can not possibly get the same file offset. Therefore the writes should not overlap and data should not be lost as is required by POSIX.
2014-10-29manual/llio.texi: Add Linux-specific comments for write().Carlos O'Donell1-0/+25
Add Linux-specific comments about the atomicity of write() and the POSIX requirements. 2014-10-29 Carlos O'Donell <carlos@redhat.com> * manual/llio.texi: Add comments discussing why write() may be considered MT-unsafe on Linux.
2014-07-29fcntl-linux.h: add new definitions and manual updates for open file ↵Jeff Layton1-3/+238
description locks Open file description locks have been merged into the Linux kernel for v3.15. Add the appropriate command-value definitions and an update to the manual that describes their usage.
2014-02-26Fix two spaces after sentence.Ondřej Bílka1-13/+13
Minor formatting fix that was carried by issuing sed -e"s/\. \([A-Z]\)/. \1/" followed by editing result.
2014-01-31* manual/llio.texi: Document MTASC-safety properties.Alexandre Oliva1-0/+280
2013-12-30Fix spelling in manual, as in bug 16376Ville Skytta1-1/+1
2013-12-02Document shm_open.Ondřej Bílka1-0/+27
2013-10-25Document that mmap() returns MAP_FAILED on error, as per the POSIX standard.Fabrice Bauzac1-2/+2
2013-04-12BZ#15361: Make aio_fsync not check open modes.Roland McGrath1-2/+1
2013-02-11Fix some errors in declarations in the manual.Roland McGrath1-16/+14
2012-04-08Better describe open argumentsStephen Compall1-4/+4
[BZ #6649] * manual/llio.texi (Opening and Closing Files): Add cross reference to explain mode argument.
2012-04-06Fix typo in manualRobert Millan1-3/+3
lseek refers to WHENCE when it really means OFFSET
2012-03-14BZ#13846: manual/llio.texi (Memory-mapped I/O): Fix wrong function name.Roland McGrath1-1/+1
2012-03-08Clean up glibc manual references to "GNU system" (bug 6911).Joseph Myers1-20/+22
2012-03-02Document properties of standard typedefs, not exact types.Joseph Myers1-2/+2
2012-02-28Use Texinfo macros to refer to the GNU C Library within the manual.Joseph Myers1-7/+7
2012-02-27Don't document fclean.Joseph Myers1-17/+4
2012-02-17Fix various problems with @deftypefun lines.Nicolas Boulenguez1-2/+2
2006-02-22[BZ #2161]Roland McGrath1-0/+10
2005-11-15 Robert Millan <robertmh@gnu.org> [BZ #2161] * manual/llio.texi (read, write): Document EINVAL on unaligned access.
2005-09-26[BZ #162]Ulrich Drepper1-5/+7
2005-09-26 Ulrich Drepper <drepper@redhat.com> [BZ #162] * manual/llio.texi (Waiting for I/O): Correct description of read conditions reported by select.
2004-12-22(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper1-17/+5
2007-07-122.5-18.1Jakub Jelinek1-5/+17
2003-05-10Update.Ulrich Drepper1-1/+10
2003-05-09 Thorsten Kukuk <kukuk@suse.de> * sysdeps/unix/sysv/linux/netinet/igmp.h: Don't include kernel headers, add defines from kernel header, move it from here... * inet/netinet/igmp.h: ... to here. * inet/Makefile (headers): Add netinet/igmp.h. * sysdeps/unix/sysv/linux/Makefile: Remove netinet/igmp.h. * sysdeps/unix/sysv/linux/Dist: Remove netinet/igmp.h. 2003-05-10 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/lio_listio64.c (lio_listio64): If SIG == NULL, use dummy sigevent structure with SIGEV_NONE [PR libc/5015]. 2003-05-09 Thorsten Kukuk <kukuk@suse.de> * libio/bits/stdio.h: Sync prototypes with libio/stdio.h (remove __THROW from possible cancellation points).
2002-11-04Update.Ulrich Drepper1-1/+1
2002-11-04 Ulrich Drepper <drepper@redhat.com> * manual/examples/dir.c: Don't include <stddef.h>. * manual/examples/select.c: Include <errno.h> for TEMP_FAILURE_RETRY. Reported by Frédéric Delanoy <delanoy_f@yahoo.com>. 2002-11-02 H.J. Lu <hjl@gnu.org> * stdio-common/reg-printf.c: Include <stddef.h>.
2002-08-262002-08-25 Roland McGrath <roland@redhat.com>Roland McGrath1-2/+2
* manual/llio.texi (Access Modes): Fix typos in O_READ/O_WRITE defns.
2002-01-29Update.Ulrich Drepper1-2/+4
2002-01-23 Richard Henderson <rth@redhat.com> * sysdeps/alpha/Makefile (pic-ccflag): New variable. 2002-01-28 Ulrich Drepper <drepper@redhat.com> * string/strxfrm.c: Allocate one more byte for rulearr and clear this element [PR libc/2855]. * string/strcoll.c: Handle zero-length arguments specially [PR libc/2856]. 2002-01-23 Jakub Jelinek <jakub@redhat.com> * string/bits/string2.h (__mempcpy): For gcc 3.0+, don't use __mempcpy_small but instead use __builtin_memcpy ( , , n) + n for short lengths and constant src. (strcpy): Don't optimize for gcc 3.0+. (__stpcpy): For gcc 3.0+, don't use __stpcpy_small but instead use __builtin_strcpy (, src) + strlen (src) for short string literal src. 2002-01-23 Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com> * sysdeps/unix/sysv/linux/configure.in (libc_cv_gcc_unwind_find_fde): Set for arm, too. 2001-01-22 Paul Eggert <eggert@twinsun.com> * manual/llio.texi (Linked Channels, Cleaning Streams): Make it clearer that a just-opened input stream might need cleaning. 2002-01-21 H.J. Lu <hjl@gnu.org> * sysdeps/mips/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC): Don't use label at end of compound statement.
2001-12-19Update.Ulrich Drepper1-1/+1
2001-12-19 Jakub Jelinek <jakub@redhat.com> * manual/llio.texi (aio_fsync): Fix a typo. Patch by Tammy Fox <tfox@redhat.com>.
2001-10-07Update.Ulrich Drepper1-1/+2
2001-10-04 Ben Collins <bcollins@debian.org> * sysdeps/generic/inttypes.h: Fix typo (define, not defined) in decleration of __need_wchar_t. 2001-10-03 Jakub Jelinek <jakub@redhat.com> * string/bits/string2.h (__strsep_g): Add prototype. (__strsep): Use it. * string/Versions (__strsep): Remove. * sysdeps/generic/strsep.c (__strsep_g): Add alias to __strsep. 2001-10-07 Ulrich Drepper <drepper@redhat.com> * manua/llio.texi: Clarify file references added by mmap. Patch by Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>.
2001-07-23Update.Ulrich Drepper1-0/+2
2001-07-23 Ulrich Drepper <drepper@redhat.com> * iconv/gconv_cache.c (__gconv_lookup_cache): Handle encoding from and to INTERNAL. * iconv/iconvconfig.c: Create a special record for the INTERNAL encoding name in the output file.
2001-06-06Update.Andreas Jaeger1-1/+1
2001-06-06 Andreas Jaeger <aj@suse.de> * manual/llio.texi (Memory-mapped I/O): Clarify that mapping is to offset+length-1. Reported by Robert Bernecky <bernecky@acm.org>.
2001-05-21Update.Andreas Jaeger1-1/+68
2001-05-21 Andreas Jaeger <aj@suse.de> * locale/programs/ld-collate.c (handle_ellipsis): Fix message. Patch by Philipp Thomas <pthomas@suse.de>.
2001-05-16Update.Andreas Jaeger1-130/+129
2001-05-16 Bruce Mitchener <bruce@cubik.org> * manual/llio.texi: Many grammar and typo fixes to the section on AIO.
2001-04-08Update.Ulrich Drepper1-0/+16
2001-04-07 Stephen L Moshier <moshier@mediaone.net> * sysdeps/ieee754/ldbl-128/e_logl.c: Correct infinity and NaN return values.
2001-02-11(Currency Symbol): Add INT_ constants and CODESET:Ulrich Drepper1-6/+25
2001-02-08Document thread-related stream functions and contents of <stdio_ext.h>.Ulrich Drepper1-0/+10
2000-10-28Update.Ulrich Drepper1-5/+5
* Makeconfig (ETAGS): Remove -T flag.