Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ uio(9S) — SunOS 5.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

uiomove(9F)

iovec(9S)

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/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. 

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 ∗/
lloff_t _uio_offset; /∗ offset into file where data is ∗/
/∗ transferred from or to ∗/
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) ∗/
lldaddr_t _uio_limit; /∗ ulimit for file (maximum block offset). ∗/
/∗ not driver setable ∗/
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 structure is created by the driver, uio_iov should be initialized by the driver and not written to afterward. 

SEE ALSO

uiomove(9F), iovec(9S)

SunOS 5.1  —  Last change: 11 Apr 1991

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026