Kernel Functions for Drivers putnextctl1(9F)
NAME
putnextctl1 - send a control message with a one-byte parame-
ter to a queue
SYNOPSIS
#include
int putnextctl1(queuet *q, int type, int p);
INTERFACE LEVEL
Architecture independent level 1 (DI/DKI).
PARAMETERS
q Queue to which the message is to be sent.
type Type of message.
p One-byte parameter.
DESCRIPTION
The putnextctl1() function, 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 MDELAY message is being sent. putnextctl1()
fails if type is MDATA, MPROTO, or MPCPROTO, or if a mes-
sage 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->qnext, type, p). The STREAMS framework provides
whatever mutual exclusion is necessary to insure that dere-
ferencing q through its qnext field and then invoking
putctl1(9F) proceeds without interference from other
threads.
The putnextctl1() function should always be used in prefer-
ence 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.
SunOS 5.11 Last change: 16 Jan 2006 1
Kernel Functions for Drivers putnextctl1(9F)
CONTEXT
The putnextctl1() function can be called from user, inter-
rupt, or kernel 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
SunOS 5.11 Last change: 16 Jan 2006 2
|