qreply man page on SmartOS

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

QREPLY(9F)							    QREPLY(9F)

NAME
       qreply - send a message on a stream in the reverse direction

SYNOPSIS
       #include <sys/stream.h>

       void qreply(queue_t *q, mblk_t *mp);

INTERFACE LEVEL
       Architecture independent level 1 (DDI/DKI).

PARAMETERS
       q
	     Pointer to the queue.

       mp
	     Pointer to the message to be sent in the opposite direction.

DESCRIPTION
       The qreply() function sends messages in the reverse direction of normal
       flow. That is, qreply(q, mp) is equivalent to putnext(OTHERQ(q), mp).

CONTEXT
       The qreply() function can be called from	 user,	interrupt,  or	kernel
       context.

EXAMPLES
       Example 1 Canonical Flushing Code for STREAMS Drivers.

       This  example  depicts the canonical flushing code for STREAMS drivers.
       Assume that the driver has service procedures so that there may be mes‐
       sages  on its queues. See srv(9E). Its write-side put procedure handles
       M_FLUSH messages by first checking the FLUSHW bit  in the first byte of
       the  message,  then  the write queue is flushed (line 8) and the FLUSHW
       bit is turned off (line 9). See put(9E). If the FLUSHR bit is on,  then
       the read queue is flushed (line 12) and the message is sent back up the
       read side of the stream with the qreply() function (line	 13).  If  the
       FLUSHR bit is off, then the message is freed (line 15). See the example
       for flushq(9F) for the canonical flushing code for modules.

	 1  xxxwput(q, mp)
	  2    queue_t *q;
	  3    mblk_t *mp;
	  4  {
	  5	  switch(mp->b_datap->db_type) {
	  6	  case M_FLUSH:
	  7	      if (*mp->b_rptr & FLUSHW) {
	  8		     flushq(q, FLUSHALL);
	  9		     *mp->b_rptr &= ~FLUSHW;
	 10		}
	 11	      if (*mp->b_rptr & FLUSHR) {
	 12		     flushq(RD(q), FLUSHALL);
	 13		       qreply(q, mp);
	 14	      } else {
	 15		       freemsg(mp);
	 16		}
	 17	      break;
		    . . .
	 18	}
	 19  }

SEE ALSO
       put(9E), srv(9E), flushq(9F), OTHERQ(9F), putnext(9F)

       Writing Device Drivers

       STREAMS Programming Guide

				 Jan 16, 2006			    QREPLY(9F)
[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