Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bcanput(9F)

canput(9F)

canputnext(9F)

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. 

0 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)

Writing Device Drivers
STREAMS Programming Guide

SunOS 5.5/x86  —  Last change: 31 Jan 1993

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026