uwritec(D3DK) —
NAME
uwritec − return a character from space described by uio(D4DK) structure .IX \f4uwritec\fP(D3DK)
SYNOPSIS
#include <sys/uio.h>
int uwritec(uio_t ∗uiop);
ARGUMENTS
uiopPointer to the uio structure.
DESCRIPTION
uwritec copies a character from the space described by the uio structure pointed to by uiop and returns the character to the caller.
The uio_segflg member of the uio structure specifies the type of space from which the copy is made. If uio_segflg is set to UIO_SYSSPACE the character is copied from a kernel address. If uio_segflg is set to UIO_USERSPACE the character is copied from a user address.
If the character is successfully copied, uwritec updates the appropriate members of the uio and iovec(D4DK) structures to reflect the copy (uio_offset and iov_base are incremented and uio_resid and iov_len are decremented) and returns the character to the caller.
RETURN VALUE
If successful, uwritec returns the character. -1 is returned if the space described by the uio structure is empty or there is an error.
LEVEL
Base only if uio_segflg is set to UIO_USERSPACE. Base or interrupt if uio_segflg is set to UIO_SYSSPACE.
NOTES
May sleep if uio_segflg is set to UIO_USERSPACE.
Driver-defined basic locks and read/write locks may be held across calls to this function if uio_segflg is UIO_SYSSPACE but may not be held if uio_segflg is UIO_USERSPACE.
Driver-defined sleep locks may be held across calls to this function regardless of the value of uio_segflg.
When holding locks across calls to this function, drivers must be careful to avoid creating a deadlock. During the data transfer, page fault resolution might result in another I/O to the same device. For example, this could occur if the driver controls the disk drive used as the swap device.
SEE ALSO
uiomove(D3DK), ureadc(D3DK), iovec(D4DK), uio(D4DK)
DDI/DKI