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