bufcall(9r)bufcall(9r)NAMEbufcall - STREAMS: Gets a buffer when allocb fails
SYNOPSIS
#include <sys/stream.h>
int bufcall(
int size,
int pri,
int (*function) (),
long argument );
ARGUMENTS
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. Speci‐
fies an argument to be passed to the kernel or driver interface speci‐
fied in the function argument.
DESCRIPTION
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 inter‐
face passed to function can be a routine that calls allocb or it can be
implemented to perform something else.
NOTES
Even when the bufcall interface calls the interface passed to the func‐
tion 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.
RETURN VALUES
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 buf‐
call returns the value zero (0).
SEE ALSO
Kernel Routines: allocb(9r), esballoc(9r), testb(9r)
Programmer's Guide: STREAMS
bufcall(9r)