55 lines
1.5 KiB
Plaintext
55 lines
1.5 KiB
Plaintext
.if n .pH ddi.rm/d3/gen/msgpullup @(#)msgpullup 43.8 of 11/27/92
|
|
.TH msgpullup D3
|
|
.IX "\f4msgpullup\fP(D3)"
|
|
.SH NAME
|
|
\f4msgpullup\fP \- concatenate bytes in a message
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.na
|
|
.ft 4
|
|
#include <sys/stream.h>
|
|
#include <sys/ddi.h>
|
|
.sp 0.4
|
|
mblk_t *msgpullup(mblk_t *\f2mp\fP, int \f2len\fP);
|
|
.ft 1
|
|
.ad
|
|
.fi
|
|
.SS Arguments
|
|
.RS 0
|
|
.IP "\f2mp\fP" 10n
|
|
Pointer to the message whose blocks are to be concatenated.
|
|
.IP "\f2len\fP" 10n
|
|
Number of bytes to concatenate.
|
|
.RE
|
|
.SH DESCRIPTION
|
|
\f4msgpullup\fP concatenates and aligns
|
|
the first \f2len\fP data bytes of the message pointed to by \f2mp\fP,
|
|
copying the data into a new message.
|
|
All message blocks that remain in the original message
|
|
once \f2len\fP bytes have been concatenated and aligned
|
|
(including any partial message blocks)
|
|
are copied and linked to the end of the new message,
|
|
so that the length of the new message
|
|
is equal to the length of the original message.
|
|
.P
|
|
The original message is unaltered.
|
|
If \f2len\fP equals \-1, all data are concatenated.
|
|
If \f2len\fP bytes of the same message type cannot be found,
|
|
\f4msgpullup\fP fails and returns \f4NULL\fP.
|
|
.SS "Return Values"
|
|
On success, \f4msgpullup\fP returns a pointer to the new message.
|
|
On failure, \f4msgpullup\fP returns \f4NULL\fP.
|
|
.SH USAGE
|
|
.SS Level
|
|
Base or Interrupt.
|
|
.SS "Synchronization Constraints"
|
|
Does not sleep.
|
|
.P
|
|
Driver-defined basic locks, read/write locks, and sleep locks may be held across
|
|
calls to this function.
|
|
.SH REFERENCES
|
|
.na
|
|
\f4allocb\fP(D3),
|
|
\f4msgb\fP(D4)
|
|
.ad
|