uwritec Kernel Service
Purpose
Retrieves a character from a buffer described by a uio structure.
Syntax
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/uio.h>
struct uio *uiop;
Parameter
Item | Description |
---|---|
uiop | Points to a uio structure describing the buffer from which to read a character. |
Description
The uwritec kernel service reads a character from a buffer described by a uio structure. Device driver top half routines, especially character device drivers, frequently use the uwritec kernel service to transfer data out of a user area. The uio_resid and uio_iovcnt fields in the uio structure must be greater than 0 or an error is returned.
The uio_segflg field in the uio structure indicates whether the data is being read out of a user- or kernel-data area. This field also indicates whether the caller requires cross-memory operations and has provided the required cross-memory descriptors. The values for this flag are defined in the /usr/include/sys/uio.h file.
If the data is successfully read, the following fields in the uio structure are updated:
Field | Description |
---|---|
uio_iov | Specifies the address of the current iovec element to use. |
uio_xmem | Specifies the address of the current xmem element to use (used for cross-memory copy). |
uio_iovcnt | Specifies the number of remaining iovec elements. |
uio_iovdcnt | Specifies the number of iovec elements already processed. |
uio_offset | Specifies the character offset on the device to which data is written. |
uio_resid | Specifies the total number of characters remaining in the data area described by the uio structure. |
iov_base | Specifies the address of the next available character in the data area described by the current iovec element. |
iov_len | Specifies the length of the remaining data in the buffer described by the current iovec element. |
Execution Environment
The uwritec kernel service can be called from the process environment only.
Return Values
Upon successful completion, the uwritec service returns the character it was sent to retrieve.
Item | Description |
---|---|
-1 | Indicates that
the buffer is empty or the user location is
not valid for one of these three reasons:
|