read(D2)

read - read data from a device

As shipped in IRIX 6.5.19. Unchanged since IRIX 6.5.

NAME
     read - read data from a device

SYNOPSIS
     #include <sys/types.h>
     #include <sys/errno.h>
     #include <sys/uio.h>
     #include <sys/cred.h>
     #include <sys/ddi.h>
     int prefixread(dev_t dev, uio_t *uiop, cred_t *crp);

   Arguments
     dev       Device number.

     uiop      Pointer to the uio(D4) structure that describes where the data
               is to be stored in user space.

     crp       Pointer to the user credential structure for the I/O
               transaction.

DESCRIPTION
     The driver read routine is called during the read(2) system call.  The
     read routine is responsible for transferring data from the device to the
     user data area.

   Return Values
     The read routine should return 0 for success, or the appropriate error
     number.

USAGE
     This entry point is optional, and is valid for character device drivers
     only.

     The pointer to the user credentials, crp, is available so the driver can
     check to see if the user can read privileged information, if the driver
     provides access to any.  The uio structure provides the information
     necessary to determine how much data should be transferred.  The
     uiomove(D3) function provides a convenient way to copy data using the uio
     structure.

     Block drivers that provide a character interface can use physiock(D3) to
     perform the data transfer with the driver's strategy(D2) routine.

   Synchronization Constraints
     The read routine has user context and can sleep.

REFERENCES
     drv_priv(D3), errnos(D5), physiock(D3), strategy(D2), uio(D4),
     uiomove(D3), ureadc(D3), write(D2)