queue(9S)




NAME

     queue - STREAMS queue structure


SYNOPSIS

     #include <sys/stream.h>


INTERFACE LEVEL

     Architecture independent level 1 (DDI/DKI)


DESCRIPTION

     A  STREAMS driver or module consists of  two   queue  struc-
     tures,  one for upstream processing (read) and one for down-
     stream processing  (write).  This  structure  is  the  major
     building block of a stream. It contains pointers to the pro-
     cessing procedures, pointers to the next and previous queues
     in the stream, flow control parameters, and a pointer defin-
     ing the position of its messages on the   STREAMS  scheduler
     list.

     The  queue structure is defined as type  queue_t.


STRUCTURE MEMBERS

     struct      qinit*q_qinfo;      /* module or driver entry points */
     struct      msgb*q_first;       /* first message in queue */
     struct      msgb*q_last;        /* last message in queue */
     struct      queue*q_next;       /* next queue in stream */
     struct      queue*q_link;       /* to next queue for scheduling*/
     void        *q_ptr;             /* pointer to private data structure */
     size_t      q_count;            /* approximate size of message queue */
     uint_t      q_flag;             /* status of queue */
     ssize_t     q_minpsz;           /* smallest packet accepted by QUEUE*/
     ssize_t     q_maxpsz;           /*largest packet accepted by QUEUE */
     size_t      q_hiwat;            /* high water mark */
     size_t      q_lowat;            /* low water mark */

     Valid flags are as follows:

          QENAB Queue is already enabled to run.

          QWANTR
                Someone wants to read queue.

          QWANTW
                Someone wants to write to queue.

          QFULL Queue is considered full.

          QREADR
                This is the reader (first) queue.

          QUSE  This queue is in use (allocation).

          QNOENB
                Do not enable queue by way of putq().


SEE ALSO

     strqget(9F),   strqset(9F),    module_info(9S),    msgb(9S),
     qinit(9S), streamtab(9S)

     Writing Device Drivers

     STREAMS Programming Guide


Man(1) output converted with man2html