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