'\"!  tbl | mmdoc
'\"macro stdmacro
.if n .pH ddi_dki.free_rtn @(#)free_rtn	40.6 of 10/10/89
.\" Copyright 1989 AT&T
.de IX
.ie '\\n(.z'' .tm .Index: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9	\\n%
.el \\!.IX \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
..
.nr X
.if \nX=0 .ds x} free_rtn D4DK "STREAMS" "DDI/DKI" "\&"
.if \nX=1 .ds x} free_rtn D4DK "STREAMS" "DDI/DKI"
.if \nX=2 .ds x} free_rtn D4DK "" "\&"
.if \nX=3 .ds x} free_rtn "" "" "\&"
.TH \*(x}
.IX "\f4free_rtn\fP(D4DK)"
.SH NAME
\f4free_rtn\f1 \- structure that specifies a driver's message freeing routine
.SH SYNOPSIS
\f4#include <sys/stream.h>\f1
.SH DESCRIPTION
The \f4free_rtn\f1 structure is referenced by the \f4dp_freep\f1
member of the \f4datab\f1 structure.
When \f4freeb\f1(D3D) is called to free the message, the driver's message
freeing routine (referenced through the \f4free_rtn\f1 structure) is
called, with arguments, to free the data buffer.
.SH STRUCTURE MEMBERS
.P
.TS
lf4p8 2 lf4p8 2 lf4p8.
void	(*free_func)()	/* user's freeing routine */
char	*free_arg	/* arguments to free_func() */
.TE
.P
The \f4free_rtn\f1 structure is defined as type \f4frtn_t\f1.
.SH SEE ALSO
.na
\f4datab\f1(D4DK),
\f4esballoc\f1(D3DK)
.ad
