|
| 以 PDF 格式下载本书
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 structures, one for upstream processing (read) and one for downstream processing (write). This structure is the major building block of a stream. It contains pointers to the processing procedures, pointers to the next and previous queues in the stream, flow control parameters, and a pointer defining 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; /* tonext queue for scheduling* /
void * q_ptr; /* pointer to private data structure * /
ulong q_count; /* approximate size of message queue * /
ulong q_flag; /* status of queue * /
long q_minpsz; /* smallest packet accepted by QUEUE * /
long q_maxpsz; /* largest packet accepted by QUEUE * /
ulong q_hiwat; /* high water mark * /
ulong 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 in use (allocation).
-
- QNOENB
- do not enable queue via putq.
SEE ALSO
-
strqget(9F), strqset(9F), msgb (9S),module_info(9S), streamtab(9S), qinit(9S)
-
Writing Device Drivers
-
STREAMS Programmer's Guide
|
|