MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Kernel Functions for Drivers                          qwriter(9F)



NAME
     qwriter - asynchronous STREAMS perimeter upgrade

SYNOPSIS
     #include 
     #include 



     void qwriter(queuet *qp, mblkt *mp, void (*func)(), int perimeter);


INTERFACE LEVEL
     Solaris DI specific (Solaris DI).

PARAMETERS
     qp            Pointer to the queue.


     mp            Pointer to a message that will be passed in to
                   the callback function.


     func          A function that will be called when  exclusive
                   (writer)  access  has  been  acquired  at  the
                   specified perimeter.


     perimeter     Either PERIMINER or PERIMOUTER.


DESCRIPTION
     qwriter() is used to upgrade the access at either the  inner
     or the outer perimeter from shared to exclusive and call the
     specified callback function when the upgrade has  succeeded.
     See mt-streams(9F). The callback function is called as:

       (*func)(queuet *qp, mblkt *mp);



     qwriter() will acquire exclusive access immediately if  pos-
     sible, in which case the specified callback function will be
     executed before qwriter() returns. If this is not  possible,
     qwriter()  will  defer  the  upgrade  until later and return
     before the callback  function  has  been  executed.  Modules
     should  not  assume that the callback function has been exe-
     cuted when qwriter() returns. One way to avoid  dependencies
     on  the execution of the callback function is to immediately
     return after calling qwriter() and let the callback function
     finish the processing of the message.




SunOS 5.11           Last change: 1 Mar 1993                    1






Kernel Functions for Drivers                          qwriter(9F)



     When qwriter() defers calling  the  callback  function,  the
     STREAMS  framework will prevent other messages from entering
     the inner perimeter associated  with  the  queue  until  the
     upgrade has completed and the callback function has finished
     executing.

CONTEXT
     qwriter() can only be called from an put(9E) or srv(9E) rou-
     tine,  or  from  a  qwriter(), qtimeout(9F), or qbufcall(9F)
     callback function.

SEE ALSO
     put(9E), srv(9E), mt-streams(9F), qbufcall(9F), qtimeout(9F)


     STREAMS Programming Guide


     Writing Device Drivers




































SunOS 5.11           Last change: 1 Mar 1993                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™