Driver Entry Points awrite(9E)
NAME
awrite - asynchronous write to a device
SYNOPSIS
#include
#include
#include
#include
#include
intprefixawrite(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 awrite() 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 stored.cred_p Pointer to the credential structure.
DESCRIPTION
The driver's awrite() routine is called to perform an asyn-
chronous write. getminor(9F) can be used to access theminor number component of the dev argument. awrite() may use
the credential structure pointed to by cred_p to check for
superuser access by calling drv_priv(9F). The awrite()
routine may also examine the uio(9S) structure through theaio_req structure pointer, aio_reqp. awrite() 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 awrite() routine should return 0 for success, or the
appropriate error number.CONTEXT
SunOS 5.11 Last change: 28 Mar 1997 1
Driver Entry Points awrite(9E)
This function is called from user context only.EXAMPLES
Example 1 Using the awrite() routine:
The following is an example of an awrite() routine:
static intxxawrite(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_WRITE, \
xxminphys, aio)); }SEE ALSO
write(2), aiowrite(3C), aread(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 write.SunOS 5.11 Last change: 28 Mar 1997 2