SVR5 and SCO OpenServer 5
pullupmsg(D3str)
pullupmsg --
concatenate bytes in a message
Synopsis (Not in current DDI version)
#include <sys/stream.h>
#include <sys/ddi.h>
int pullupmsg(mblk_t *mp, int len);
Description
pullupmsg concatenates and aligns
the first len data bytes of the message
with the same type mp,
combining multiple message blocks into a single block.
Arguments
mp-
Pointer to the message whose blocks are to be concatenated.
len-
Number of bytes to concatenate.
If len equals -1, all data are concatenated.
If len bytes of the same message type cannot be found,
pullupmsg fails and returns 0.
Return values
On success, pullupmsg returns 1 and mp
points to the altered message.
On failure, pullupmsg returns 0.
Usage
The memory in the resulting data buffer(s)
is usable for DMA operations;
that is, it satisfies the worst-case
phys_dmasize
constraint for the platform (see
physreq(D4)).
If more specific physical memory properties are required
for DDI drivers, use
msgpullup_physreq(D3str).
pullupmsg
can panic multiprocessor SVR5 systems.
pullupmsg( )
can only pull up mblk structures with the same type
as the first mblk that was passed in,
so even when len is set to -1,
it is possible that no message blocks are returned.
Context
Base or Interrupt.
Synchronization constraints
Does not block.
Hardware applicability
All
Version applicability
ddi:
1, 2, 4
oddi:
1, 2, 2mp, 3, 3mp, 4, 4mp, 5, 5mp, 6, 6mp
Differences between versions
msgpullup(D3str)
and
msgpullup_physreq(D3str)
replace
pullupmsg( )
for current DDI drivers.
Note that
pullupmsg( )
and
pullupmsg_physreq( )
return a new message,
leaving the old one intact,
whereas
pullupmsg( )
concatenates into the given message.
References
allocb(D3str),
msgpullup(D3str),
msgpullup_physreq(D3str)
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005