Kernel Functions for Drivers canputnext(9F)
NAME
canputnext, bcanputnext - test for room in next module's
message queueSYNOPSIS
#include
int canputnext(queue_t *q);
int bcanputnext(queue_t *q, unsigned char pri);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
q Pointer to a message queue belonging to the invoking module. pri Minimum priority level.DESCRIPTION
The invocation canputnext(q); is an atomic equivalent of the
canput(q->q_next); routine. That is, the STREAMS framework
provides whatever mutual exclusion is necessary to insurethat dereferencing q through its q_next field and then
invoking canput(9F) proceeds without interference from other threads.bcanputnext(q, pri); is the equivalent of the
bcanput(q->q_next, pri); routine.
canputnext(q); and bcanputnext(q, pri); should always be
used in preference to canput(q->q_next); and
bcanput(q->q_next, pri); respectively.
See canput(9F) and bcanput(9F) for further details.RETURN VALUES
1 If the message queue is not full. 0 If the queue is full.SunOS 5.11 Last change: 16 Jan 2006 1
Kernel Functions for Drivers canputnext(9F)
CONTEXT
The canputnext() and bcanputnext() functions can be called
from user, interrupt, or kernel context. WARNINGSDrivers are responsible for both testing a queue with can-
putnext() or bcanputnext() and refraining from placing a
message on the queue if the queue is full.SEE ALSO
bcanput(9F), canput(9F) Writing Device Drivers STREAMS Programming GuideSunOS 5.11 Last change: 16 Jan 2006 2