.TH backq() "" "" "DDI/DKI Kernel Routine"
.PC "Get a pointer to the preceding queue"
.B "#include <sys/stream.h>"
\fBqueue_t *backq(\fIqueue\^\fB)\fR
\fBqueue_t *\fIqueue\^\fB;\fR
.PP
.B backq()
returns the address of the queue that preceeds the queue to which
.I queue
points.
If
.I queue
points to a read queue,
.B backq()
returns a pointer to the queue downstream from
.IR queue ,
unless
.I queue
is the end of the stream.
If
.IR queue ,
is a write queue,
.B backq()
returns a pointer to the next queue upstream from
.IR queue ,
unless
.I queue
is the head of the stream.
If something goes wrong,
.B backq()
returns NULL.
.SH Level
Base or interrupt.
.SH "See Also"
.B
DDI/DKI kernel routines
.R
.SH Notes
.B backq()
does not sleep.
.PP
The calling function cannot have the stream frozen
when it calls this function.
.PP
The caller can hold
driver-defined basic locks, read/write locks, and sleep locks
across calls to this function.
