Current File : //usr/share/man/man9f/WR.9f
'\" te
.\"  Copyright 1989 AT&T
.\"  Copyright (c) 2006, Sun Microsystems, Inc., All Rights Reserved
.TH WR 9F "16 Jan 2006" "SunOS 5.11" "Kernel Functions for Drivers"
.SH NAME
WR, wr \- get pointer to the write queue for this module or driver
.SH SYNOPSIS
.LP
.nf
#include <sys/stream.h>
#include <sys/ddi.h>

\fBqueue_t *\fR\fBWR\fR(\fBqueue_t *\fR\fIq\fR);
.fi

.SH INTERFACE LEVEL
.sp
.LP
Architecture independent level 1 (DDI/DKI).
.SH PARAMETERS
.sp
.ne 2
.mk
.na
\fB\fIq\fR\fR
.ad
.RS 5n
.rt  
Pointer to the \fIread\fR queue whose \fIwrite\fR queue is to be returned.
.RE

.SH DESCRIPTION
.sp
.LP
The \fBWR()\fR function accepts a \fIread\fR queue pointer as an argument and returns a pointer to the \fIwrite\fR queue of the same module.
.sp
.LP
CAUTION: Make sure the argument to this function is a pointer to a \fIread\fR queue. \fBWR()\fR will not check for queue type, and a system panic could result if the pointer is not to a \fIread\fR queue.
.SH RETURN VALUES
.sp
.LP
The pointer to the \fIwrite\fR queue.
.SH CONTEXT
.sp
.LP
The \fBWR()\fR function can be called from user, interrupt, or kernel context.
.SH EXAMPLES
.LP
\fBExample 1 \fRUsing \fBWR()\fR
.sp
.LP
In a STREAMS \fBclose\fR(9E) routine, the driver or module is passed a pointer to the \fIread\fR queue. These usually are set to the address of the module-specific data structure for the minor device.

.sp
.in +2
.nf
 
1   xxxclose(q, flag)
2       queue_t *q;
3       int flag;
4   {
5	         q->q_ptr = NULL;
6         WR(q)->q_ptr = NULL;
	         . . .
7   }
.fi
.in -2

.SH SEE ALSO
.sp
.LP
\fBclose\fR(9E), \fBOTHERQ\fR(9F), \fBRD\fR(9F)
.sp
.LP
\fIWriting Device Drivers for Oracle Solaris 11.2\fR
.sp
.LP
\fISTREAMS Programming Guide\fR