freeb(9F)




NAME

     freeb - free a message block


SYNOPSIS

     #include <sys/stream.h>

     void  freeb(mblk_t *bp);


PARAMETERS

     bp    Pointer to the message block to be deallocated. mblk_t
           is an instance of the  msgb(9S) structure.


INTERFACE LEVEL

     Architecture independent level 1 (DDI/DKI).


DESCRIPTION

     freeb() deallocates a message block. If the reference  count
     of the  db_ref member of the  datab(9S) structure is greater
     than  1, freeb() decrements the count. If  db_ref equals  1,
     it  deallocates the message block and the corresponding data
     block and buffer.

     If the data buffer  to  be  freed  was  allocated  with  the
     esballoc(9F),  the  buffer may be a non-STREAMS resource. In
     that case, the driver must be  notified  that  the  attached
     data  buffer needs to be freed, and run its own freeing rou-
     tine. To make this process independent of the driver used in
     the  stream, freeb() finds the  free_rtn(9S) structure asso-
     ciated with the buffer. The  free_rtn structure  contains  a
     pointer  to the driver-dependent routine, which releases the
     buffer. Once this  is  accomplished,  freeb()  releases  the
     STREAMS resources associated with the buffer.


CONTEXT

     freeb() can be called from user or interrupt context.


EXAMPLES

     Example 1: Using freeb()

     See copyb(9F) for an example of using freeb().


SEE ALSO

     allocb(9F), copyb(9F), dupb(9F), esballoc(9F), free_rtn(9S)

     Writing Device Drivers

     STREAMS Programming Guide


Man(1) output converted with man2html