DUPMSG(9F) Kernel Functions for Drivers DUPMSG(9F)
dupmsg - duplicate a message
#include <sys/stream.h>
mblk_t *dupmsg(mblk_t *mp);
Architecture independent level 1 (DDI/DKI).
mp
Pointer to the message.
dupmsg() forms a new message by copying the message block descriptors
pointed to by mp and linking them. dupb(9F) is called for each
message block. The data blocks themselves are not duplicated.
If successful, dupmsg() returns a pointer to the new message block.
Otherwise, it returns a NULL pointer. A return value of NULL
indicates either memory depletion or the data block reference count,
db_ref (see datab(9S)), has reached a limit (255). See dupb(9F).
dupmsg() can be called from user, kernel, or interrupt context.
See copyb(9F) for an example using dupmsg().
copyb(9F), copymsg(9F), dupb(9F), datab(9S)
Writing Device Drivers
STREAMS Programming Guide
April 11, 1991 DUPMSG(9F)
NAME
dupmsg - duplicate a message
SYNOPSIS
#include <sys/stream.h>
mblk_t *dupmsg(mblk_t *mp);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
mp
Pointer to the message.
DESCRIPTION
dupmsg() forms a new message by copying the message block descriptors
pointed to by mp and linking them. dupb(9F) is called for each
message block. The data blocks themselves are not duplicated.
RETURN VALUES
If successful, dupmsg() returns a pointer to the new message block.
Otherwise, it returns a NULL pointer. A return value of NULL
indicates either memory depletion or the data block reference count,
db_ref (see datab(9S)), has reached a limit (255). See dupb(9F).
CONTEXT
dupmsg() can be called from user, kernel, or interrupt context.
EXAMPLES
Example 1: Using dupmsg()
See copyb(9F) for an example using dupmsg().
SEE ALSO
copyb(9F), copymsg(9F), dupb(9F), datab(9S)
Writing Device Drivers
STREAMS Programming Guide
April 11, 1991 DUPMSG(9F)