unlinkb(D3)

unlinkb - remove a message block from the head of a message

As shipped in IRIX 6.5.5. Unchanged since IRIX 6.5.

NAME
     unlinkb - remove a message block from the head of a message

SYNOPSIS
     #include <sys/stream.h>
     #include <sys/ddi.h>
     mblk_t *unlinkb(mblk_t *mp);

   Arguments
     mp        Pointer to the message.

DESCRIPTION
     unlinkb removes the first message block from the message pointed to by
     mp.

   Return Values
     unlinkb returns a pointer to the remainder of the message after the first
     message block has been removed.  If there is only one message block in
     the message, NULL is returned.

USAGE
     The removed message block is not freed.  It is the caller's
     responsibility to free it.

   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.

   Examples
     The routine expects to get passed an M_PROTO T_DATA_IND message.  It will
     remove and free the M_PROTO header and return the remaining M_DATA
     portion of the message.
     1  mblk_t *
     2  makedata(mp)
     3    mblk_t *mp;
     4  {
     5    mblk_t *nmp;
     6    nmp = unlinkb(mp);
     7    freeb(mp);
     8    return(nmp);
     9  }
REFERENCES
     linkb(D3)