QPROCSON(9F)            Kernel Functions for Drivers            QPROCSON(9F)
NAME
       qprocson, qprocsoff - enable, disable put and service routines
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
       The 
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.
       The 
qprocson() function must be called by the open routine of a
       driver or module before returning, and after any initialization
       necessary for the proper functioning of the put and service routines.
       The 
qprocson() function must be called before calling 
put(9F),       
putnext(9F), 
qbufcall(9F), 
qtimeout(9F), 
qwait(9F), or 
qwait_sig(9F).
       The 
qprocsoff() function 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 pending 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 handled separately.
CONTEXT
       These routines can be called from user, interrupt, or kernel 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 GuideNOTES
       The caller may not have the stream frozen during either of these
       calls.
                              January 16, 2006                  QPROCSON(9F)