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