|
Kernel Functions for Drivers | esbbcall(9F) |
| esbbcall - call function when buffer is available |
SYNOPSIS
|
#include <sys/stream.h>
bufcall_id_t esbbcall(uint_t pri, void (*func)(void *arg), void (arg)); |
|
Architecture independent level 1 (DDI/DKI).
|
|
-
pri
- Priority of allocation request (to be used by allocb(9F) function, called by esbbcall())
-
func
- Function to be called when buffer becomes available.
-
arg
- Argument to func.
|
|
esbbcall(), like bufcall(9F), serves as a timeout(9F) call of indeterminate length. If esballoc(9F) is unable to allocate a message and data block header to go with its externally supplied data buffer, esbbcall() can be used to schedule
the routine func, to be called with the argument arg when a buffer becomes available. func may be a routine that calls esballoc(9F) or it may be another kernel function.
|
|
On success, a bufcall IDis returned. On failure, 0 is returned. The value returned from a successful call should be saved for possible
future use with unbufcall() should it become necessary to cancel the esbbcall() request (as at driver close time).
|
|
esbbcall() can be called from user or interrupt context.
|
| |