LCOV - code coverage report
Current view: top level - usr/include/x86_64-linux-gnu/sys - uio.h (source / functions) Hit Total Coverage
Test: coverage report for master 2f515e9b Lines: 2 2 100.0 %
Date: 2024-04-21 15:09:00 Functions: 2 2 100.0 %

          Line data    Source code
       1             : /* Copyright (C) 1991-2022 Free Software Foundation, Inc.
       2             :    This file is part of the GNU C Library.
       3             : 
       4             :    The GNU C Library is free software; you can redistribute it and/or
       5             :    modify it under the terms of the GNU Lesser General Public
       6             :    License as published by the Free Software Foundation; either
       7             :    version 2.1 of the License, or (at your option) any later version.
       8             : 
       9             :    The GNU C Library is distributed in the hope that it will be useful,
      10             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      11             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12             :    Lesser General Public License for more details.
      13             : 
      14             :    You should have received a copy of the GNU Lesser General Public
      15             :    License along with the GNU C Library; if not, see
      16             :    <https://www.gnu.org/licenses/>.  */
      17             : 
      18             : #ifndef _SYS_UIO_H
      19             : #define _SYS_UIO_H      1
      20             : 
      21             : #include <features.h>
      22             : #include <sys/types.h>
      23             : #include <bits/types/struct_iovec.h>
      24             : #include <bits/uio_lim.h>
      25             : #ifdef __IOV_MAX
      26             : # define UIO_MAXIOV __IOV_MAX
      27             : #else
      28             : # undef UIO_MAXIOV
      29             : #endif
      30             : 
      31             : __BEGIN_DECLS
      32             : 
      33             : /* Read data from file descriptor FD, and put the result in the
      34             :    buffers described by IOVEC, which is a vector of COUNT 'struct iovec's.
      35             :    The buffers are filled in the order specified.
      36             :    Operates just like 'read' (see <unistd.h>) except that data are
      37             :    put in IOVEC instead of a contiguous buffer.
      38             : 
      39             :    This function is a cancellation point and therefore not marked with
      40             :    __THROW.  */
      41    11348711 : extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count)
      42             :   __wur __attr_access ((__read_only__, 2, 3));
      43             : 
      44             : /* Write data pointed by the buffers described by IOVEC, which
      45             :    is a vector of COUNT 'struct iovec's, to file descriptor FD.
      46             :    The data is written in the order specified.
      47             :    Operates just like 'write' (see <unistd.h>) except that the data
      48             :    are taken from IOVEC instead of a contiguous buffer.
      49             : 
      50             :    This function is a cancellation point and therefore not marked with
      51             :    __THROW.  */
      52    11617224 : extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count)
      53             :   __wur __attr_access ((__read_only__, 2, 3));
      54             : 
      55             : 
      56             : #ifdef __USE_MISC
      57             : # ifndef __USE_FILE_OFFSET64
      58             : /* Read data from file descriptor FD at the given position OFFSET
      59             :    without change the file pointer, and put the result in the buffers
      60             :    described by IOVEC, which is a vector of COUNT 'struct iovec's.
      61             :    The buffers are filled in the order specified.  Operates just like
      62             :    'pread' (see <unistd.h>) except that data are put in IOVEC instead
      63             :    of a contiguous buffer.
      64             : 
      65             :    This function is a cancellation point and therefore not marked with
      66             :    __THROW.  */
      67             : extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count,
      68             :                        __off_t __offset)
      69             :   __wur __attr_access ((__read_only__, 2, 3));
      70             : 
      71             : /* Write data pointed by the buffers described by IOVEC, which is a
      72             :    vector of COUNT 'struct iovec's, to file descriptor FD at the given
      73             :    position OFFSET without change the file pointer.  The data is
      74             :    written in the order specified.  Operates just like 'pwrite' (see
      75             :    <unistd.h>) except that the data are taken from IOVEC instead of a
      76             :    contiguous buffer.
      77             : 
      78             :    This function is a cancellation point and therefore not marked with
      79             :    __THROW.  */
      80             : extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count,
      81             :                         __off_t __offset)
      82             :   __wur __attr_access ((__read_only__, 2, 3));
      83             : 
      84             : # else
      85             : #  ifdef __REDIRECT
      86             : extern ssize_t __REDIRECT (preadv, (int __fd, const struct iovec *__iovec,
      87             :                                     int __count, __off64_t __offset),
      88             :                            preadv64)
      89             :   __wur __attr_access ((__read_only__, 2, 3));
      90             : extern ssize_t __REDIRECT (pwritev, (int __fd, const struct iovec *__iovec,
      91             :                                      int __count, __off64_t __offset),
      92             :                            pwritev64)
      93             :   __wur __attr_access ((__read_only__, 2, 3));
      94             : #  else
      95             : #   define preadv preadv64
      96             : #   define pwritev pwritev64
      97             : #  endif
      98             : # endif
      99             : 
     100             : # ifdef __USE_LARGEFILE64
     101             : /* Read data from file descriptor FD at the given position OFFSET
     102             :    without change the file pointer, and put the result in the buffers
     103             :    described by IOVEC, which is a vector of COUNT 'struct iovec's.
     104             :    The buffers are filled in the order specified.  Operates just like
     105             :    'pread' (see <unistd.h>) except that data are put in IOVEC instead
     106             :    of a contiguous buffer.
     107             : 
     108             :    This function is a cancellation point and therefore not marked with
     109             :    __THROW.  */
     110             : extern ssize_t preadv64 (int __fd, const struct iovec *__iovec, int __count,
     111             :                          __off64_t __offset)
     112             :   __wur __attr_access ((__read_only__, 2, 3));
     113             : 
     114             : /* Write data pointed by the buffers described by IOVEC, which is a
     115             :    vector of COUNT 'struct iovec's, to file descriptor FD at the given
     116             :    position OFFSET without change the file pointer.  The data is
     117             :    written in the order specified.  Operates just like 'pwrite' (see
     118             :    <unistd.h>) except that the data are taken from IOVEC instead of a
     119             :    contiguous buffer.
     120             : 
     121             :    This function is a cancellation point and therefore not marked with
     122             :    __THROW.  */
     123             : extern ssize_t pwritev64 (int __fd, const struct iovec *__iovec, int __count,
     124             :                           __off64_t __offset)
     125             :   __wur __attr_access ((__read_only__, 2, 3));
     126             : # endif
     127             : #endif  /* Use misc.  */
     128             : 
     129             : 
     130             : #ifdef __USE_GNU
     131             : # ifndef __USE_FILE_OFFSET64
     132             : /* Same as preadv but with an additional flag argumenti defined at uio.h.  */
     133             : extern ssize_t preadv2 (int __fp, const struct iovec *__iovec, int __count,
     134             :                         __off_t __offset, int ___flags)
     135             :   __wur __attr_access ((__read_only__, 2, 3));
     136             : 
     137             : /* Same as preadv but with an additional flag argument defined at uio.h.  */
     138             : extern ssize_t pwritev2 (int __fd, const struct iovec *__iodev, int __count,
     139             :                          __off_t __offset, int __flags) __wur;
     140             : 
     141             : # else
     142             : #  ifdef __REDIRECT
     143             : extern ssize_t __REDIRECT (pwritev2, (int __fd, const struct iovec *__iovec,
     144             :                                       int __count, __off64_t __offset,
     145             :                                       int __flags),
     146             :                            pwritev64v2)
     147             :   __wur __attr_access ((__read_only__, 2, 3));
     148             : extern ssize_t __REDIRECT (preadv2, (int __fd, const struct iovec *__iovec,
     149             :                                      int __count, __off64_t __offset,
     150             :                                      int __flags),
     151             :                            preadv64v2)
     152             :   __wur __attr_access ((__read_only__, 2, 3));
     153             : #  else
     154             : #   define preadv2 preadv64v2
     155             : #   define pwritev2 pwritev64v2
     156             : #  endif
     157             : # endif
     158             : 
     159             : # ifdef __USE_LARGEFILE64
     160             : /* Same as preadv but with an additional flag argumenti defined at uio.h.  */
     161             : extern ssize_t preadv64v2 (int __fp, const struct iovec *__iovec,
     162             :                            int __count, __off64_t __offset,
     163             :                            int ___flags)
     164             :   __wur __attr_access ((__read_only__, 2, 3));
     165             : 
     166             : /* Same as preadv but with an additional flag argument defined at uio.h.  */
     167             : extern ssize_t pwritev64v2 (int __fd, const struct iovec *__iodev,
     168             :                             int __count, __off64_t __offset,
     169             :                             int __flags)
     170             :   __wur __attr_access ((__read_only__, 2, 3));
     171             : # endif
     172             : #endif /* Use GNU.  */
     173             : 
     174             : __END_DECLS
     175             : 
     176             : /* Some operating systems provide system-specific extensions to this
     177             :    header.  */
     178             : #ifdef __USE_GNU
     179             : # include <bits/uio-ext.h>
     180             : #endif
     181             : 
     182             : #endif /* sys/uio.h */

Generated by: LCOV version 1.14