qprocsoff(D3DK) —
.IX \f4qprocsoff\fP(D3DK)
.IX STREAMS message queues
.IX message (STREAMS)
NAME
qprocsoff − disable put and service routines
SYNOPSIS
#include <sys/stream.h>
void qprocsoff(queue_t ∗rq);
ARGUMENTS
rqPointer to a read queue.
DESCRIPTION
qprocsoff disables the put and service routines of the driver or module whose read queue is pointed to by rq. When the routines are disabled in a module, messages flow around the module as if it were not present in the stream.
qprocsoff must be called by the close(D2DK) routine of a driver or module before deallocating any resources on which the driver/module’s put and service routines depend.
qprocsoff will remove the queue’s service routines from the list of service routines to be run and waits until any concurrent put or service routines are finished.
RETURN VALUE
None.
LEVEL
Base Level Only.
NOTES
May sleep. This means that qprocsoff should only be used within open and close routines. It must never be used within a put or service procedure. It must also never be used in the interrupt context of a hardware driver. Driver defined basic locks and read/write locks may not be held across calls to this function. Driver defined sleep locks may be held across calls to this function.
SEE ALSO
close(D2DK), put(D2DK), srv(D2DK), qprocson(D3DK)
EXAMPLE
See unbufcall(D3DK) for an example of qprocsoff.
DDI/DKI — STREAMS