putnextctl1(9F)
NAME
putnextctl1 - send a control message with a one-byte parame-
ter to a queue
SYNOPSIS
#include <sys/stream.h>
int putnextctl1(queue_t *q, int type, int p);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
q Queue to which the message is to be sent.
type Type of message.
p One-byte parameter.
DESCRIPTION
putnextctl1(), like putctl1(9F), tests the type argument to
make sure a data type has not been specified, and attempts
to allocate a message block. The p parameter can be used,
for example, to specify how long the delay will be when an
M_DELAY message is being sent. putnextctl1() fails if type
is M_DATA, M_PROTO, or M_PCPROTO, or if a message block
cannot be allocated. If successful, putnextctl1() calls the
put(9E) routine of the queue pointed to by q with the newly
allocated and initialized message.
A call to putnextctl1(q,type, p) is an atomic equivalent of
putctl1(q->q_next, type, p). The STREAMS framework provides
whatever mutual exclusion is necessary to insure that dere-
ferencing q through its q_next field and then invoking
putctl1(9F) proceeds without interference from other
threads.
putnextctl1() should always be used in preference to
putctl1(9F)
RETURN VALUES
On success, 1 is returned. 0 is returned if type is a
data type, or if a message block cannot be allocated.
CONTEXT
putnextctl1() can be called from user or interrupt context.
EXAMPLES
See the putnextctl(9F) function page for an example of put-
nextctl1().
SEE ALSO
put(9E), allocb(9F), datamsg(9F), putctl1(9F),
putnextctl(9F)
Writing Device Drivers
STREAMS Programming Guide
Man(1) output converted with
man2html