bufcall - STREAMS: Gets a buffer when allocb fails
#include <sys/stream.h>
int bufcall(
int size,
int pri,
int (*function) (),
long argument );
Specifies the number of bytes in the buffer. Specifies
the priority of the allocb allocation request (no longer
used). Specifies a kernel or driver interface to be
called when a buffer becomes available. Specifies an
argument to be passed to the kernel or driver interface
specified in the function argument.
The bufcall interface serves as a timeout call of indeterminate
length. When a buffer allocation request fails, you
can use bufcall to schedule the interface passed to the
function argument to be called with the argument passed to
argument when a buffer becomes available. The interface
passed to function can be a routine that calls allocb or
it can be implemented to perform something else.
Even when the bufcall interface calls the interface passed
to the function argument, the allocb interface can still
fail if another module or device driver allocated the memory
before the interface in function was able to call
allocb.
Upon successful completion, the bufcall interface returns
a bufcall id that you can use in a call to the unbufcall
interface to cancel the request. If the bufcall scheduling
fails (that is, a buffer is not available), the interface
passed to function is never called and bufcall returns the
value zero (0).
Kernel Routines: allocb(9r), esballoc(9r), testb(9r)
Programmer's Guide: STREAMS
bufcall(9r)
[ Back ] |