PUT(9F)                 Kernel Functions for Drivers                 PUT(9F)
NAME
       put - call a STREAMS put procedure
SYNOPSIS
       #include <sys/stream.h>
       #include <sys/ddi.h>       
void put(
queue_t *q, 
mblk_t *mp);
INTERFACE LEVEL
       Architecture independent level 1 (DDI/DKI).
PARAMETERS
       q              Pointer to a STREAMS queue.       
mp              Pointer to message block being passed into queue.
DESCRIPTION
       put() calls the put procedure ( 
put(9E) entry point) for the STREAMS
       queue specified by 
q, passing it the message block referred to by 
mp.
       It is typically used by a driver or module to call its own put
       procedure.
CONTEXT
       put() can be called from a STREAMS module or driver put or service
       routine, or from an associated interrupt handler, timeout, bufcall,
       or esballoc call-back. In the latter cases, the calling code must
       guarantee the validity of the 
q argument.
       Since 
put() may cause re-entry of the module (as it is intended to
       do), mutexes or other locks should not be held across calls to it,
       due to the risk of single-party deadlock (
put(9E), 
putnext(9F),       
putctl(9F), 
qreply(9F)). This function is provided as a DDI/DKI
       conforming replacement for a direct call to a put procedure.
SEE ALSO
       put(9E), 
freezestr(9F), 
putctl(9F), 
putctl1(9F), 
putnext(9F),       
putnextctl(9F), 
putnextctl1(9F), 
qprocson(9F), 
qreply(9F)       Writing Device Drivers        STREAMS Programming GuideNOTES
       The caller cannot have the stream frozen when calling this function.
       See 
freezestr(9F).
       DDI/DKI conforming modules and drivers are no longer permitted to
       call put procedures directly, but must call through the appropriate
       STREAMS utility function, for example, 
put(9E), 
putnext(9F),       
putctl(9F), and 
qreply(9F). This function is provided as a DDI/DKI
       conforming replacement for a direct call to a put procedure.
       The 
put() and 
putnext() functions should be called only after       
qprocson() is finished.
                               April 28, 1992                        PUT(9F)