xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/bits/uio.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /* Copyright (C) 1996, 1997, 2006 Free Software Foundation, Inc.
2*53ee8cc1Swenshuai.xi    This file is part of the GNU C Library.
3*53ee8cc1Swenshuai.xi 
4*53ee8cc1Swenshuai.xi    The GNU C Library is free software; you can redistribute it and/or
5*53ee8cc1Swenshuai.xi    modify it under the terms of the GNU Lesser General Public
6*53ee8cc1Swenshuai.xi    License as published by the Free Software Foundation; either
7*53ee8cc1Swenshuai.xi    version 2.1 of the License, or (at your option) any later version.
8*53ee8cc1Swenshuai.xi 
9*53ee8cc1Swenshuai.xi    The GNU C Library is distributed in the hope that it will be useful,
10*53ee8cc1Swenshuai.xi    but WITHOUT ANY WARRANTY; without even the implied warranty of
11*53ee8cc1Swenshuai.xi    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12*53ee8cc1Swenshuai.xi    Lesser General Public License for more details.
13*53ee8cc1Swenshuai.xi 
14*53ee8cc1Swenshuai.xi    You should have received a copy of the GNU Lesser General Public
15*53ee8cc1Swenshuai.xi    License along with the GNU C Library; if not, write to the Free
16*53ee8cc1Swenshuai.xi    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17*53ee8cc1Swenshuai.xi    02111-1307 USA.  */
18*53ee8cc1Swenshuai.xi 
19*53ee8cc1Swenshuai.xi #if !defined _SYS_UIO_H && !defined _FCNTL_H
20*53ee8cc1Swenshuai.xi # error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
21*53ee8cc1Swenshuai.xi #endif
22*53ee8cc1Swenshuai.xi 
23*53ee8cc1Swenshuai.xi #ifndef _BITS_UIO_H
24*53ee8cc1Swenshuai.xi #define _BITS_UIO_H	1
25*53ee8cc1Swenshuai.xi 
26*53ee8cc1Swenshuai.xi #include <sys/types.h>
27*53ee8cc1Swenshuai.xi 
28*53ee8cc1Swenshuai.xi 
29*53ee8cc1Swenshuai.xi /* We should normally use the Linux kernel header file to define this
30*53ee8cc1Swenshuai.xi    type and macros but this calls for trouble because of the header
31*53ee8cc1Swenshuai.xi    includes other kernel headers.  */
32*53ee8cc1Swenshuai.xi 
33*53ee8cc1Swenshuai.xi /* Size of object which can be written atomically.
34*53ee8cc1Swenshuai.xi 
35*53ee8cc1Swenshuai.xi    This macro has different values in different kernel versions.  The
36*53ee8cc1Swenshuai.xi    latest versions of the kernel use 1024 and this is good choice.  Since
37*53ee8cc1Swenshuai.xi    the C library implementation of readv/writev is able to emulate the
38*53ee8cc1Swenshuai.xi    functionality even if the currently running kernel does not support
39*53ee8cc1Swenshuai.xi    this large value the readv/writev call will not fail because of this.  */
40*53ee8cc1Swenshuai.xi #define UIO_MAXIOV	1024
41*53ee8cc1Swenshuai.xi 
42*53ee8cc1Swenshuai.xi 
43*53ee8cc1Swenshuai.xi /* Structure for scatter/gather I/O.  */
44*53ee8cc1Swenshuai.xi struct iovec
45*53ee8cc1Swenshuai.xi   {
46*53ee8cc1Swenshuai.xi     void *iov_base;	/* Pointer to data.  */
47*53ee8cc1Swenshuai.xi     size_t iov_len;	/* Length of data.  */
48*53ee8cc1Swenshuai.xi   };
49*53ee8cc1Swenshuai.xi 
50*53ee8cc1Swenshuai.xi #endif
51