put man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

PUT(9E)								       PUT(9E)

NAME
       put - receive messages from the preceding queue

SYNOPSIS
       #include <sys/types.h>
       #include <sys/stream.h>
       #include <sys/stropts.h>
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

       int prefixrput(queue_t *q, mblk_t *mp/* read side */

       int prefixwput(queue_t *q, mblk_t *mp/* write side */

INTERFACE LEVEL
       Architecture  independent  level	 1  (DDI/DKI).	This  entry  point  is
       required for STREAMS.

ARGUMENTS
       q
	      Pointer to the queue(9S) structure.

       mp
	      Pointer to the message block.

DESCRIPTION
       The primary task of the put() routine is to coordinate the  passing  of
       messages	 from  one queue to the next in a stream. The put() routine is
       called by the preceding stream component	 (stream  module,  driver,  or
       stream  head).  put()  routines	are  designated	 ``write'' or ``read''
       depending on the direction of message flow.

       With few exceptions, a streams module or driver must have a put()  rou‐
       tine. One exception is the read side of a driver, which does not need a
       put() routine because there is no component downstream to call it.  The
       put()  routine  is  always  called before the component's corresponding
       srv(9E) (service) routine, and so put() should be used for the  immedi‐
       ate processing of messages.

       A  put() routine must do at least one of the following when it receives
       a message:

	   o	  pass the message to the next	component  on  the  stream  by
		  calling the putnext(9F) function;

	   o	  process  the	message,  if  immediate processing is required
		  (for example, to handle high priority messages); or

	   o	  enqueue  the	message	 (with	the  putq(9F)  function)   for
		  deferred processing by the service srv(9E) routine.

       Typically,  a  put() routine will switch on message type, which is con‐
       tained in the db_type member of the datab structure pointed to  by  mp.
       The  action taken by the put() routine depends on the message type. For
       example, a put() routine might process high priority messages,  enqueue
       normal messages, and handle an unrecognized M_IOCTL message by changing
       its type to M_IOCNAK (negative acknowledgement) and sending it back  to
       the stream head using the qreply(9F) function.

       The  putq(9F)  function can be used as a module's put() routine when no
       special processing is required and all messages are to be enqueued  for
       the srv(9E) routine.

RETURN VALUES
       Ignored.

CONTEXT
       put() routines do not have user context.

SEE ALSO
       srv(9E),	 putctl(9F),  putctl1(9F),  putnext(9F),  putnextctl(9F), put‐
       nextctl1(9F), putq(9F), qreply(9F), queue(9S), streamtab(9S)

       Writing Device Drivers

       STREAMS Programming Guide

				 Nov 12, 1992			       PUT(9E)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net