DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
SVR5

put(D3str)


put -- call a put procedure

Synopsis (Not in ODDI)

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

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

Description

put calls the put procedure (put(D2str) entry point) for the queue specified by q, passing it the arguments q and mp.

Arguments


q
Pointer to a message queue.

mp
Pointer to the message block being passed.

Return values

None

Usage

put is typically used by a driver or module to call its own put(D2str) procedure so that the proper accounting is done in the stream.

On multiprocessor systems, DDI drivers and modules are no longer permitted to call put( ) procedures directly, but must call through the appropriate STREAMS utility function, such as put(D3str), putnext(D3str), putctl(D3str), putnextctl(D3str), or qreply(D3str). put(q, mp) is provided as a DDI conformant equivalent to a direct call to a put procedure, which is not allowed in current DDI versions.

Context

Base or Interrupt.

Synchronization constraints

Does not block.

Driver-defined basic locks, read/write locks, and sleep locks may not be held across calls to this function.

The caller cannot have the stream frozen (see freezestr(D3str)) when calling this function.

Hardware applicability

All

Version applicability

ddi: 3, 5, 5mp, 6, 6mp, 7, 7mp, 7.1, 7.1mp, 8, 8mp

Differences between versions

This function is not required for ODDI drivers. The sdistributed(D3oddi) function handles potential problems for multithreaded drivers.

References

qreply(D3str), put(D2str), putctl(D3str), putctl1(D3str), putnext(D3str), putnextctl(D3str), putnextctl1(D3str)
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005