uio man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

uio(9S)			  Data Structures for Drivers		       uio(9S)

NAME
       uio - scatter/gather I/O request structure

SYNOPSIS
       #include <sys/uio.h>

INTERFACE LEVEL
       Architecture independent level 1 (DDI/DKI)

DESCRIPTION
       A   uio	structure  describes an I/O request that can be broken up into
       different data storage areas (scatter/gather I/O). A request is a  list
       of  iovec structures (base-length pairs) indicating where in user space
       or kernel space the I/O data is to be read or written.

       The contents of	uio structures passed to the driver through the	 entry
       points  should not be written by the driver.  The  uiomove(9F) function
       takes care of all overhead related to maintaining the state of the  uio
       structure.

       uio  structures	allocated  by the driver should be initialized to zero
       before use, by bzero(9F), kmem_zalloc(9F), or an equivalent.

STRUCTURE MEMBERS
       iovec_t	    *uio_iov;	   /* pointer to the start of the iovec */
				   /* list for the uio structure */
       int	    uio_iovcnt;	   /* the number of iovecs in the list */
       off_t	    uio_offset;	   /* 32-bit offset into file where data is */
				   /* transferred from or to. See NOTES. */
       offset_t	    uio_loffset;   /* 64-bit offset into file where data is */
				   /* transferred from or to. See NOTES. */
       uio_seg_t    uio_segflg;	   /* identifies the type of I/O transfer: */
				   /*	 UIO_SYSSPACE:	kernel <-> kernel */
				   /*	 UIO_USERSPACE: kernel <-> user */
       short	    uio_fmode;	   /* file mode flags (not driver setable) */
       daddr_t	    uio_limit;	   /* 32-bit ulimit for file (maximum block */
				   /* offset). not driver setable. See NOTES. */
       diskaddr_t   uio_llimit;	   /* 64-bit ulimit for file (maximum block */
				   /* offset). not driver setable. See NOTES. */
       int	    uio_resid;	   /* residual count */

       The  uio_iov member is a pointer to the beginning of the iovec(9S) list
       for the	uio. When the uio structure is passed to the driver through an
       entry point, the driver should not set  uio_iov. When the   uio	struc‐
       ture  is	 created  by the driver,  uio_iov should be initialized by the
       driver and not written to afterward.

SEE ALSO
       aread(9E), awrite(9E), read(9E), write(9E), bzero(9F), kmem_zalloc(9F),
       uiomove(9F), cb_ops(9S), iovec(9S)

       Writing Device Drivers

NOTES
       Only one structure, uio_offset or uio_loffset, should be interpreted by
       the driver. Which field the driver interprets  is  dependent  upon  the
       settings in the cb_ops(9S) structure.

       Only  one  structure, uio_limit or uio_llimit, should be interpreted by
       the driver. Which field the driver interprets  is  dependent  upon  the
       settings in the cb_ops(9S) structure.

       When  performing I/O on a seekable device, the driver should not modify
       either the uio_offset or the uio_loffset field of  the  uio  structure.
       I/O  to	such a device is constrained by the maximum offset value. When
       performing I/O on a device on which the concept of position has no rel‐
       evance,	the driver may preserve the uio_offset or uio_loffset, perform
       the I/O operation, then restore the uio_offset or  uio_loffset  to  the
       field's	initial value. I/O performed to a device in this manner is not
       constrained.

SunOS 5.10			  28 Mar 1997			       uio(9S)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net