Kernel Functions for Drivers mexchange(9F)
NAME
mexchange - Exchange one message for another
SYNOPSIS
#include
#include
mblkt *mexchange(queuet *wq, mblkt *mp, sizet size,
uchart type, int32t primtype);
INTERFACE LEVEL
Solaris DI specific (Solaris DI).
PARAMETERS
wq Optionally, write queue associated with the read
queue to be used on failure (see below).
mp Optionally, the message to exchange.
size Size of the returned message.
type Type of the returned message.
primtype Optionally, a 4 byte value to store at the
beginning of the returned message.
DESCRIPTION
The mexchange() function exchanges the passed in message for
another message of the specified size and type.
If mp is not NUL, is of at least size bytes, and has only
one reference (see dupmsg(9F)), mp is converted to be of the
specified size and type. Otherwise, a new message of the
specified size and type is allocated. If allocation fails,
and wq is not NUL, merror(9F) attempts to send an error to
the stream head.
Finally, if primtype is not -1 and size is at least 4 bytes,
the first 4 bytes are assigned to be primtype. This is
chiefly useful for STREAMS-based protocols such as DLPI and
TPI which store the protocol message type in the first 4
bytes of each message.
SunOS 5.11 Last change: 9 June 2004 1
Kernel Functions for Drivers mexchange(9F)
RETURN VALUES
A pointer to the requested message is returned on success.
NUL is returned on failure.
CONTEXT
This function can be called from user, kernel or interrupt
context.
SEE ALSO
dupmsg(9F), merror(9F)
STREAMS Programming Guide
SunOS 5.11 Last change: 9 June 2004 2
|