OTHERQ(9F) Kernel Functions for Drivers OTHERQ(9F)
OTHERQ, otherq - get pointer to queue's partner queue
#include <sys/stream.h>
#include <sys/ddi.h>
queue_t *OTHERQ(queue_t *q);
Architecture independent level 1 (DDI/DKI).
q
Pointer to the queue.
The OTHERQ() function returns a pointer to the other of the two queue
structures that make up a STREAMS module or driver. If q points to
the read queue the write queue will be returned, and vice versa.
The OTHERQ() function returns a pointer to a queue's partner.
The OTHERQ() function can be called from user, interrupt, or kernel
context.
This routine sets the minimum packet size, the maximum packet size,
the high water mark, and the low water mark for the read and write
queues of a given module or driver. It is passed either one of the
queues. This could be used if a module or driver wished to update
its queue parameters dynamically.
1 void
2 set_q_params(q, min, max, hi, lo)
3 queue_t *q;
4 short min;
5 short max;
6 ushort_t hi;
7 ushort_t lo;
8 {
9 q->q_minpsz = min;
10 q->q_maxpsz = max;
11 q->q_hiwat = hi;
12 q->q_lowat = lo;
13 OTHERQ(q)->q_minpsz = min;
14 OTHERQ(q)->q_maxpsz = max;
15 OTHERQ(q)->q_hiwat = hi;
16 OTHERQ(q)->q_lowat = lo;
17 }
Writing Device Drivers
STREAMS Programming Guide
January 16, 2006 OTHERQ(9F)
NAME
OTHERQ, otherq - get pointer to queue's partner queue
SYNOPSIS
#include <sys/stream.h>
#include <sys/ddi.h>
queue_t *OTHERQ(queue_t *q);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
q
Pointer to the queue.
DESCRIPTION
The OTHERQ() function returns a pointer to the other of the two queue
structures that make up a STREAMS module or driver. If q points to
the read queue the write queue will be returned, and vice versa.
RETURN VALUES
The OTHERQ() function returns a pointer to a queue's partner.
CONTEXT
The OTHERQ() function can be called from user, interrupt, or kernel
context.
EXAMPLES
Example 1: Setting Queues
This routine sets the minimum packet size, the maximum packet size,
the high water mark, and the low water mark for the read and write
queues of a given module or driver. It is passed either one of the
queues. This could be used if a module or driver wished to update
its queue parameters dynamically.
1 void
2 set_q_params(q, min, max, hi, lo)
3 queue_t *q;
4 short min;
5 short max;
6 ushort_t hi;
7 ushort_t lo;
8 {
9 q->q_minpsz = min;
10 q->q_maxpsz = max;
11 q->q_hiwat = hi;
12 q->q_lowat = lo;
13 OTHERQ(q)->q_minpsz = min;
14 OTHERQ(q)->q_maxpsz = max;
15 OTHERQ(q)->q_hiwat = hi;
16 OTHERQ(q)->q_lowat = lo;
17 }
SEE ALSO
Writing Device Drivers
STREAMS Programming Guide
January 16, 2006 OTHERQ(9F)