[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    canputnext(9F) manual page Table of Contents

Name

canputnext, bcanputnext - test for room in next module’s message queue

Synopsis

#include <sys/stream.h>

int canputnext(queue_t *q);

int bcanputnext(queue_t *q, unsigned char pri);

Interface Level

Architecture independent level 1 (DDI/DKI).

Arguments

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 insure that 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.
  2. If the queue is full.

Context

canputnext() and bcanputnext() can be called from user or interrupt context.

Warnings

Drivers are responsible for both testing a queue with canputnext() or bcanputnext() and refraining from placing a message on the queue if the queue is full.

See Also

bcanput(9F) , canput(9F)



Table of Contents