'\"macro stdmacro
.if n .pH ddi_dki.backq @(#)backq	40.6 of 10/10/89
.\" Copyright 1989 AT&T
.de IX
.ie '\\n(.z'' .tm .Index: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9	\\n%
.el \\!.IX \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
..
.nr X
.if \nX=0 .ds x} backq D3DK "STREAMS" "DDI/DKI" "\&"
.if \nX=1 .ds x} backq D3DK "STREAMS" "DDI/DKI"
.if \nX=2 .ds x} backq D3DK "" "\&"
.if \nX=3 .ds x} backq "" "" "\&"
.TH \*(x}
.IX "\f4backq\fP(D3DK)"
.IX "STREAMS message queues"
.SH NAME
\f4backq\f1 \- get pointer to the queue behind the current queue 
.SH SYNOPSIS
.nf
.na
\f4#include <sys/stream.h>
.sp 0.5
queue_t *backq(\f4queue_t *\f1\f2cq\f4);\f1
.ad
.fi
.SH ARGUMENT
.RS 0n
.IP "\f2*cq\f1" 10n
The pointer to the current queue.  \f4queue_t\f1 is an alias for the
\f4queue\f1(D4DK) structure.
.RE
.SH DESCRIPTION
\f4backq\f1 returns a pointer to the queue preceding \f2cq\f1 (the current
queue).  If \f2cq\f1 is a read queue, \f4backq\f1 returns a
pointer to the queue downstream from \f2cq\f1, unless it is the stream end.
If \f2cq\f1 is a write queue, \f4backq\f1 returns a pointer
to the next queue upstream from \f2cq\f1, unless it is the stream head.
.SH RETURN VALUE
If successful, \f4backq\f1 returns a pointer
to the queue preceding the
current queue.  Otherwise, it returns \f4NULL\f1.
.SH LEVEL
Base or Interrupt
.SH SEE ALSO
\f2BCI Driver Development Guide\f1, Chapter 7, ``STREAMS''
