'\"macro stdmacro
.if n .pH ddi_dki.esbbcall @(#)esbbcall	40.5 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} esbbcall D3DK "STREAMS" "DDI/DKI" "\&"
.if \nX=1 .ds x} esbbcall D3DK "STREAMS" "DDI/DKI"
.if \nX=2 .ds x} esbbcall D3DK "" "\&"
.if \nX=3 .ds x} esbbcall "" "" "\&"
.TH \*(x}
.IX "\f4esbbcall\fP(D3DK)"
.SH NAME
\f4esbbcall\f1 \- call function when buffer is available
.SH SYNOPSIS 
.nf
.na
\f4#include <sys/stream.h>
.sp 0.5
mblk_t *esbbcall(int \f2pri, \f4int \f2func, \f4long \f2arg\f4);\f1
.ad
.fi
.SH ARGUMENTS 
.RS 0n 10
.IP "\f2pri\f1" 10n
Priority of allocation request (to be used by \f4allocb\f1(D3DK) function,
called by \f4esbbcall\f1)
.IP "\f2func\f1" 10n
Function to be called when buffer becomes available.
.IP "\f2arg\f1" 10n
Argument to \f2func\f1.
.RE
.SH DESCRIPTION 
\f4esbbcall\f1,
like \f4bufcall\f1(D3DK), serves 
as a \f4timeout\f1(D3DK) call of indeterminate length.
If \f4esballoc\f1(D3DK) is unable to allocate a
message and data block header to go with its externally supplied data buffer,
\f4esbbcall\f1 can
be used to schedule the routine \f2func\f1,
to be called with the argument \f2arg\f1 when a buffer becomes available.
\f2func\f1 may be a routine that calls \f4esbbcall\f1 or it may be another
kernel function.
.SH "RETURN VALUE" 
On success, \f41\f1 is returned.
On failure, \f40\f1 is returned.
.SH LEVEL 
Base or Interrupt
.SH "SEE ALSO" 
\f2BCI Driver Development Guide\f1, Chapter 7, ``STREAMS''
.P
.na
\f4allocb\f1(D3DK),
\f4bufcall\f1(D3DK),
\f4datab\f1(D4DK),
\f4esballoc\f1(D3DK)
.ad
