putbq(9F)




NAME

     putbq - place a message at the head of a queue


SYNOPSIS

     #include <sys/stream.h>

     int putbq(queue_t *q, mblk_t *bp);


INTERFACE LEVEL

     Architecture independent level 1 (DDI/DKI).


PARAMETERS

     q     Pointer to the queue.

     bp    Pointer to the message block.


DESCRIPTION

     putbq() places a message at the beginning of the appropriate
     section  of the message queue. There are always sections for
     high priority and ordinary messages. If other priority bands
     are  used,  each  will have its own section of the queue, in
     priority band order, after high priority messages and before
     ordinary  messages. putbq() can be used for ordinary, prior-
     ity band, and high priority messages. However,  unless  pre-
     cautions  are taken, using putbq() with a high priority mes-
     sage is likely to lead to an infinite loop  of  putting  the
     message  back  on  the  queue, being rescheduled, pulling it
     off, and putting it back on.

     This  function  is  usually  called  when   bcanput(9F)   or
     canput(9F)  determines  that the message cannot be passed on
     to the next stream component. The  flow  control  parameters
     are  updated to reflect the change in the queue's status. If
     QNOENB is not set, the service routine is enabled.


RETURN VALUES

     putbq() returns 1 upon success and 0 upon failure.

          Note:

          Upon failure, the caller  should  call  freemsg(9F)  to
          free the pointer to the message block.


CONTEXT

     putbq() can be called from user or interrupt context.


EXAMPLES

     See the bufcall(9F) function page for an example of putbq().


SEE ALSO

     bcanput(9F), bufcall(9F), canput(9F), getq(9F), putq(9F)

     Writing Device Drivers

     STREAMS Programming Guide


Man(1) output converted with man2html