qprocson(9F)




NAME

     qprocson, qprocsoff - enable, disable put and  service  rou-
     tines


SYNOPSIS

     #include <sys/stream.h>
     #include <sys/ddi.h>

     void qprocson(queue_t *q);

     void qprocsoff(queue_t *q);


INTERFACE LEVEL

     Architecture independent level 1 (DDI/DKI).


PARAMETERS

     q     Pointer to the RD side of a  STREAMS queue pair.


DESCRIPTION

     qprocson() enables the  put  and  service  routines  of  the
     driver  or  module  whose  read  queue  is  pointed to by q.
     Threads cannot enter the module instance through the put and
     service routines while they  are disabled.

     qprocson() must be called by the open routine of a driver or
     module before returning, and after any initialization neces-
     sary for the proper functioning of the put and service  rou-
     tines.

     qprocson()  must   be   called   before   calling   put(9F),
     putnext(9F),   qbufcall(9F),   qtimeout(9F),  qwait(9F),  or
     qwait_sig(9F),

     qprocsoff() must be called by the close routine of a  driver
     or  module  before  returning,  and  before deallocating any
     resources necessary for the proper functioning  of  the  put
     and  service  routines.  It also removes the queue's service
     routines from the service queue, and blocks until any  pend-
     ing service processing completes.

     The module or driver instance is guaranteed  to  be  single-
     threaded  before  qprocson() is called and after qprocsoff()
     is called, except for threads executing asynchronous  events
     such as interrupt handlers and callbacks, which must be han-
     dled separately.


CONTEXT

     These routines can be called from user or interrupt context.


SEE ALSO

     close(9E), open(9E), put(9E), srv(9E), put(9F), putnext(9F),
     qbufcall(9F), qtimeout(9F), qwait(9F), qwait_sig(9F)
     Writing Device Drivers

     STREAMS Programming Guide


NOTES

     The caller may not have the  STREAM frozen during either  of
     these calls.


Man(1) output converted with man2html