adjmsg(D3)

adjmsg - trim bytes from a message

As shipped in IRIX 6.5.5. Unchanged since IRIX 6.5.

NAME
     adjmsg - trim bytes from a message

SYNOPSIS
     #include <sys/stream.h>
     #include <sys/ddi.h>
     int adjmsg(mblk_t *mp, int len);

   Arguments
     mp        Pointer to the message to be trimmed.

     len       The number of bytes to be removed.

DESCRIPTION
     adjmsg removes bytes from a message.

   Return Values
     If the message can be trimmed successfully, 1 is returned.  Otherwise, 0
     is returned.

USAGE
     |len| (the absolute value of len) specifies how many bytes are to be
     removed.  If len is greater than 0, bytes are removed from the head of
     the message.  If len is less than 0, bytes are removed from the tail.
     adjmsg fails if |len| is greater than the number of bytes in mp.  If len
     spans more than one message block in the message, the messages blocks
     must be the same type, or else adjmsg will fail.

     If len is greater than the amount of data in a single message block, that
     message block is not freed.  Rather, it is left linked in the message,
     and its read and write pointers are set equal to each other, indicating
     no data present in the block.

   Level
     Base or Interrupt.

   Synchronization Constraints
     Does not sleep.

     Driver-defined basic locks, read/write locks, and sleep locks may be held
     across calls to this function.

REFERENCES
     msgb(D4)