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