xref: /original-bsd/sys/sys/uio.h (revision 05598ce3)
1 /*
2  * Copyright (c) 1982, 1986 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  *
7  *	@(#)uio.h	7.6 (Berkeley) 02/05/91
8  */
9 
10 #ifndef _UIO_H_
11 #define	_UIO_H_
12 
13 struct iovec {
14 	caddr_t	iov_base;
15 	int	iov_len;
16 };
17 
18 enum	uio_rw { UIO_READ, UIO_WRITE };
19 
20 /*
21  * Segment flag values.
22  */
23 enum	uio_seg {
24 	UIO_USERSPACE,		/* from user data space */
25 	UIO_SYSSPACE,		/* from system space */
26 	UIO_USERISPACE		/* from user I space */
27 };
28 
29 struct uio {
30 	struct	iovec *uio_iov;
31 	int	uio_iovcnt;
32 	off_t	uio_offset;
33 	int	uio_resid;
34 	enum	uio_seg uio_segflg;
35 	enum	uio_rw uio_rw;
36 };
37 
38  /*
39   * Limits
40   */
41 #define UIO_MAXIOV	1024		/* max 1K of iov's */
42 #define UIO_SMALLIOV	8		/* 8 on stack, else malloc */
43 
44 #endif /* !_UIO_H_ */
45