bcanput(9r)bcanput(9r)NAMEbcanput - STREAMS: Tests for flow control in a specified priority band
SYNOPSIS
#include <sys/stream.h>
int bcanput(
queue_t *message_queue,
unsigned char pri );
ARGUMENTS
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.
DESCRIPTION
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 mes‐
sage. 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.
NOTES
You are responsible for both testing a queue with bcanput and not plac‐
ing a message on the queue if bcanput fails.
RETURN VALUES
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 flow-controlled.
SEE ALSO
Kernel Routines: canput(9r), putbq(9r), putnext(9r)
Programmer's Guide: STREAMS
bcanput(9r)