Content-type: text/html Man page of canputnext

canputnext

Section: Kernel Functions for Drivers (9F)
Updated: 16 Jan 2006
Index Return to Main 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).  

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

The canputnext() and bcanputnext() functions can be called from user, interrupt, or kernel 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


 

Index

NAME
SYNOPSIS
INTERFACE LEVEL
PARAMETERS
DESCRIPTION
RETURN VALUES
CONTEXT
WARNINGS
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:39:41 GMT, October 02, 2010