Go to main content

man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: July 2017



WR, wr - get pointer to the write queue for this module or driver


#include <sys/stream.h>
#include <sys/ddi.h>

queue_t *WR(queue_t *q);

Interface Level

Architecture independent level 1 (DDI/DKI).



Pointer to the read queue whose write queue is to be returned.


The WR() function accepts a read queue pointer as an argument and returns a pointer to the write queue of the same module.

CAUTION: Make sure the argument to this function is a pointer to a read queue. WR() will not check for queue type, and a system panic could result if the pointer is not to a read queue.

Return Values

The pointer to the write queue.


The WR() function can be called from user, interrupt, or kernel context.


Example 1 Using WR()

In a STREAMS close(9E) routine, the driver or module is passed a pointer to the read queue. These usually are set to the address of the module-specific data structure for the minor device.

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

See Also

close(9E), OTHERQ(9F), RD(9F)

Writing Device Drivers for Oracle Solaris 11.3

STREAMS Programming Guide