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 func-
tion 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 Guide
NOTES
The caller cannot have the stream frozen when calling this
function. See freezestr(9F).
DDI/DKI conforming modules and drivers are no longer permit-
ted 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 func-
tion 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.
Man(1) output converted with
man2html