1/* 2 * Copyright 1989 Sun Microsystems, Inc. All rights reserved. 3 * Use is subject to license terms. 4 */ 5 6/* 7 * Copyright (c) 1982, 1986 Regents of the University of California. 8 * All rights reserved. The Berkeley software License Agreement 9 * specifies the terms and conditions for redistribution. 10 */ 11 12#pragma ident "%Z%%M% %I% %E% SMI" 13 14#ifndef _sys_uio_h 15#define _sys_uio_h 16 17struct iovec { 18 caddr_t iov_base; 19 int iov_len; 20}; 21 22/* 23 * The uio_seg define below is obsolete and is included only 24 * for compatibility with previous releases. New code should 25 * use the uio_segflg field. 26 */ 27struct uio { 28 struct iovec *uio_iov; 29 int uio_iovcnt; 30 off_t uio_offset; 31 short uio_segflg; 32#define uio_seg uio_segflg /* obsolete */ 33 short uio_fmode; /* careful what you put here, the file 34 * bits that fill this are an int. */ 35 int uio_resid; 36}; 37 38enum uio_rw { UIO_READ, UIO_WRITE }; 39 40/* 41 * Segment flag values (should be enum). 42 * 43 * The UIOSEG_* defines are obsolete and are included only 44 * for compatibility with previous releases. New code should 45 * use the UIO_* definitions. 46 */ 47#define UIO_USERSPACE 0 /* from user data space */ 48#define UIO_SYSSPACE 1 /* from system space */ 49#define UIO_USERISPACE 2 /* from user I space */ 50 51#define UIOSEG_USER 0 /* obsolete */ 52#define UIOSEG_KERNEL 1 /* obsolete */ 53 54#endif /*!_sys_uio_h*/ 55