uwritec(D3)uwritec(D3)NAMEuwritec - return a character from space described by uio(D4) structure
SYNOPSIS
#include <sys/uio.h>
#include <sys/ddi.h>
int uwritec(uio_t *uiop);
Arguments
uiop Pointer to the uio structure.
DESCRIPTIONuwritec 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(D4) 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 Values
If successful, uwritec returns the character. -1 is returned if the
space described by the uio structure is empty or there is an error.
USAGE
Level
Base only if uio_segflg is set to UIO_USERSPACE.
Base or Interrupt if uio_segflg is set to UIO_SYSSPACE.
Synchronization Constraints
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.
Warnings
When holding locks across calls to this function, multithreaded 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.
Page 1
uwritec(D3)uwritec(D3)REFERENCESiovec(D4), uio(D4), uiomove(D3), ureadc(D3)
Page 2