Содержащиеся в
Найти другие документы
Ресурсы поддержки
| Загрузить это руководство в формате PDF
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);
ARGUMENTS
-
-
q
- Pointer to a message queue belonging to the invoking module.
-
-
pri
- Minimum priority level.
INTERFACE LEVEL
- Architecture independent level 1 (DDI/DKI).
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 Programmer's Guide
|
|