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