canput(9F)




NAME

     canput - test for room in a message queue


SYNOPSIS

     #include <sys/stream.h>

     int canput(queue_t *q);


INTERFACE LEVEL

     Architecture independent level 1 (DDI/DKI).


PARAMETERS

     q     Pointer to the message queue.


DESCRIPTION

     canput() searches through the stream (starting at  q)  until
     it finds a queue containing a service routine where the mes-
     sage can be enqueued, or until it reaches  the  end  of  the
     stream.   If found, the queue containing the service routine
     is tested to see if there is  room  for  a  message  in  the
     queue.

     canputnext(q) and bcanputnext(q, pri) should always be  used
     in  preference  to  canput(q->q_next) and bcanput(q->q_next,
     pri) respectively.


RETURN VALUES

     1     If the message queue is not full.

     0     If the queue is full.


CONTEXT

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


SEE ALSO

     bcanput(9F),  bcanputnext(9F),  canputnext(9F),   putbq(9F),
     putnext(9F)

     Writing Device Drivers

      STREAMS Programming Guide


WARNINGS

     Drivers are responsible for both testing a queue  with  can-
     put()  and refraining from placing a message on the queue if
     canput() fails.


Man(1) output converted with man2html