Content-type: text/html Man page of put

put

Section: Kernel Functions for Drivers (9F)
Updated: 28 Apr 1992
Index Return to Main Contents
 

NAME

put - call a STREAMS put procedure  

SYNOPSIS

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

void put(queue_t *q, mblk_t *mp);  

INTERFACE LEVEL

Architecture independent level 1 (DDI/DKI).  

PARAMETERS

q Pointer to a STREAMS queue.

mp Pointer to message block being passed into queue.

 

DESCRIPTION

put() calls the put procedure ( put(9E) entry point) for the STREAMS queue specified by q, passing it the message block referred to by mp. It is typically used by a driver or module to call its own put procedure.  

CONTEXT

put() can be called from a STREAMS module or driver put or service routine, or from an associated interrupt handler, timeout, bufcall, or esballoc call-back. In the latter cases, the calling code must guarantee the validity of the q argument.

Since put() may cause re-entry of the module (as it is intended to do), mutexes or other locks should not be held across calls to it, due to the risk of single-party deadlock (put(9E), putnext(9F), putctl(9F), qreply(9F)). This function is provided as a DDI/DKI conforming replacement for a direct call to a put procedure.  

SEE ALSO

put(9E), freezestr(9F), putctl(9F), putctl1(9F), putnext(9F), putnextctl(9F), putnextctl1(9F), qprocson(9F), qreply(9F)

Writing Device Drivers


 STREAMS Programming Guide   

NOTES

The caller cannot have the stream frozen when calling this function. See freezestr(9F).

DDI/DKI conforming modules and drivers are no longer permitted to call put procedures directly, but must call through the appropriate STREAMS utility function, for example, put(9E), putnext(9F), putctl(9F), and qreply(9F). This function is provided as a DDI/DKI conforming replacement for a direct call to a put procedure.

The put() and putnext() functions should be called only after qprocson() is finished.


 

Index

NAME
SYNOPSIS
INTERFACE LEVEL
PARAMETERS
DESCRIPTION
CONTEXT
SEE ALSO
NOTES

This document was created by man2html, using the manual pages.
Time: 02:39:46 GMT, October 02, 2010