awrite(9e) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

awrite(9e)

awrite(9E)                    Driver Entry Points                   awrite(9E)



NAME
       awrite - asynchronous write to a device

SYNOPSIS
       #include <sys/uio.h>
       #include <sys/aio_req.h>
       #include <sys/cred.h>
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

       int prefixawrite(dev_t dev, struct aio_req *aio_reqp,
            cred_t *cred_p);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI). This entry point is optional. Driv‐
       ers 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 asynchronous
       write. getminor(9F) can be used to access the minor number component of
       the  dev argument. awrite() may use the credential structure pointed to
       by cred_p to check for required privileges by calling drv_priv(9F). The
       awrite()  routine  may  also  examine the uio(9S) structure through the
       aio_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
       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 int
         xxawrite(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), get‐
       minor(9F), minphys(9F), nodev(9F), aio_req(9S), cb_ops(9S), uio(9S)


       Writing Device Drivers in Oracle Solaris 11.4

BUGS
       There is no way other than calling aphysio(9F) to accomplish  an  asyn‐
       chronous write.



Oracle Solaris 11.4               3 Nov 2021                        awrite(9E)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3