Driver Entry Points aread(9E)
NAME
aread - asynchronous read from a device
SYNOPSIS
#include
#include
#include
#include
#include
intprefixaread(dev_t dev, struct aio_req *aio_reqp, cred_t *cred_p);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). This entry point isoptional. Drivers that do not support an aread() entry point
should use nodev(9F)PARAMETERS
dev Device number.aio_reqp Pointer to the aio_req(9S) structure that
describes where the data is to be stored.cred_p Pointer to the credential structure.
DESCRIPTION
The driver's aread() routine is called to perform an asyn-
chronous read. getminor(9F) can be used to access the minornumber component of the dev argument. aread() may use the
credential structure pointed to by cred_p to check for
superuser access by calling drv_priv(9F). The aread() rou-
tine may also examine the uio(9S) structure through theaio_req structure pointer, aio_reqp. aread() must call
aphysio(9F) with the aio_req pointer and a pointer to the
driver's strategy(9E) routine.No fields of the uio(9S) structure pointed to by aio_req,
other than uio_offset or uio_loffset, may be modified for
non-seekable devices.
RETURN VALUES
The aread() routine should return 0 for success, or the
appropriate error number.CONTEXT
SunOS 5.11 Last change: 28 Mar 1997 1
Driver Entry Points aread(9E)
This function is called from user context only.EXAMPLES
Example 1 The following is an example of an aread() routine:
static intxxaread(dev_t dev, struct aio_req *aio, cred_t *cred_p)
{ int instance; struct xxstate *xsp; instance = getminor(dev);xsp = ddi_get_soft_state(statep, instance);
/*Verify soft state structure has been allocated */ if (xsp == NULL) return (ENXIO); return (aphysio(xxstrategy, anocancel,dev, B_READ, xxminphys, aio));
}SEE ALSO
read(2), aioread(3C), awrite(9E), read(9E), strategy(9E), write(9E), anocancel(9F), aphysio(9F),ddi_get_soft_state(9F), drv_priv(9F), getminor(9F),
minphys(9F), nodev(9F), aio_req(9S), cb_ops(9S), uio(9S)
Writing Device DriversBUGS
There is no way other than calling aphysio(9F) to accomplish an asynchronous read.SunOS 5.11 Last change: 28 Mar 1997 2