DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
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