Kernel Functions for Drivers putnextctl1(9F)
NAME
putnextctl1 - send a control message with a one-byte parame-
ter to a queueSYNOPSIS
#include
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
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 willbe when an M_DELAY message is being sent. putnextctl1()
fails if type is M_DATA, M_PROTO, or M_PCPROTO, 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->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.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 GuideSunOS 5.11 Last change: 16 Jan 2006 2