NAME | SYNOPSIS | INTERFACE LEVEL | PARAMETERS | DESCRIPTION | RETURN VALUES | CONTEXT | EXAMPLES | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO | NOTES
#include <sys/stream.h>int putq(queue_t *q, mblk_t *bp);
Architecture independent level 1 (DDI/DKI).
putq() is used to put messages on a driver's queue after the module's put routine has finished processing the message. The message is placed after any other messages of the same priority, and flow control parameters are updated. If QNOENB is not set, the service routine is enabled. If no other processing is done, putq() can be used as the module's put routine.
putq() returns 1 on success and 0 on failure.
Upon failure, the caller should call freemsg(9F) to free the pointer to the message block.
putq() can be called from user or interrupt context.
See the datamsg(9F) function page for an example of putq().
This routine tries to assign attribute structures to the mblks of a message that does not have any. The first attribute stucture found is used. If a stream module illegally combined messages, mblks can have different attribute structures; in that case, the message might be dropped by this routine unless overridden by the TSOL_STR_LINKB flag.
These interfaces are uncommitted. Although not expected to do so, they may change between minor Trusted Solaris releases.
NAME | SYNOPSIS | INTERFACE LEVEL | PARAMETERS | DESCRIPTION | RETURN VALUES | CONTEXT | EXAMPLES | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO | NOTES