/***************************************************************************** * * NCSA DTM version 2.3 * May 1, 1992 * * NCSA DTM Version 2.3 source code and documentation are in the public * domain. Specifically, we give to the public domain all rights for future * licensing of the source code, all resale rights, and all publishing rights. * * We ask, but do not require, that the following message be included in all * derived works: * * Portions developed at the National Center for Supercomputing Applications at * the University of Illinois at Urbana-Champaign. * * THE UNIVERSITY OF ILLINOIS GIVES NO WARRANTY, EXPRESSED OR IMPLIED, FOR THE * SOFTWARE AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT LIMITATION, * WARRANTY OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE * *****************************************************************************/ /********************************************************************* ** * $Header: /X11/mosaic/cvsroot/xmosaic3/libdtm/uio.h,v 1.3 1995/01/12 02:33:40 spowers Exp $ ** **********************************************************************/ /* * Revision 1.1.1.1 1993/07/04 00:03:15 marca * Mosaic for X version 2 distribution * * Revision 1.1 1993/01/18 21:50:49 marca * I think I got it now. * * Revision 1.2 92/04/30 20:27:37 jplevyak * Changed Version to 2.3 * * Revision 1.1 1992/03/06 22:51:22 jplevyak * Initial revision * */ #ifndef UIO_H #define UIO_H #include typedef char far *caddr_t; struct iovec { caddr_t iov_base; long int iov_len; }; struct uio { struct iovec *uio_iov; long int uio_iovcnt; off_t uio_offset; long int uio_segflg; short uio_fmode; int uio_resid; }; struct msghdr { caddr_t msg_name; /* optional address */ long int msg_namelen; /* size of address */ struct iovec *msg_iov; /* scatter/gather array */ long int msg_iovlen; /* # elements in msg_iov */ caddr_t msg_accrights; /* access rights sent/received */ long int msg_accrightslen; }; #ifndef EFAULT #define EFAULT 14 /* for UNIX compability */ #endif enum uio_rw { UIO_READ, UIO_WRITE }; /* * Segment flag values (should be enum). */ #define UIO_USERSPACE 0 /* from user data space */ #define UIO_SYSSPACE 1 /* from system space */ #define UIO_USERISPACE 2 /* from user I space */ #if defined(__STDC__) | defined (_STDC_) extern long int readv(int ,struct iovec *,int ); extern long int writev(int ,struct iovec *,int ); extern long int recvmsg(int ,struct msghdr *,int ); extern long int sendmsg(int ,struct msghdr *,int ); #endif /* defined(__STDC__) */ #endif /* UIO_H */