bcanput - STREAMS: Tests for flow control in a specified
priority band
#include <sys/stream.h>
int bcanput(
queue_t *message_queue,
unsigned char pri );
Specifies a pointer to the message queue. The typedef
queue_t is an alternate name for struct queue_entry *.
Specifies the priority of the message.
The bcanput interface, like the canput interface, searches
through the stream (starting at the message queue identified
by the message_queue argument) until it finds a queue
that contains a service interface where the message can be
enqueued or until it reaches the end of the stream. If
bcanput finds a service interface in a queue, it tests the
queue to determine if there is space in the queue to
accommodate a message. If the queue is full, bcanput sets
the q_flag member of the queue_entry structure pointer
(the message queue) to the constant QWANTW to back-enable
the caller's service interface.
If the pri argument is zero (0), bcanput calls the canput
interface, which performs the task of checking for space
in the message queue.
You are responsible for both testing a queue with bcanput
and not placing a message on the queue if bcanput fails.
The bcanput interface returns a value of 1 if a message of
priority pri can be placed on the message queue, or if the
band does not yet exist on the queue. The interface
returns a value of zero (0) if the priority band is flowcontrolled.
Kernel Routines: canput(9r), putbq(9r), putnext(9r)
Programmer's Guide: STREAMS
bcanput(9r)
[ Back ] |