svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
qbufcall(9f)
qbufcall(9F) Kernel Functions qbufcall(9F)
NAME
qbufcall - call a function when a buffer becomes available
SYNOPSIS
#include <sys/stream.h>
#include <sys/ddi.h>
bufcall_id_t qbufcall(queue_t *q, size_t size, uint_t pri,
void(*func)(void *arg), void *arg);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).
PARAMETERS
q Pointer to STREAMS queue structure.
size Number of bytes required for the buffer.
pri Priority of the allocb(9F) allocation request (not used).
func Function or driver routine to be called when a buffer becomes
available.
arg Argument to the function to be called when a buffer becomes
available.
DESCRIPTION
The qbufcall() function serves as a qtimeout(9F) call of indeterminate
length. When a buffer allocation request fails, qbufcall() can be used
to schedule the routine func to be called with the argument arg when a
buffer becomes available. func may call allocb() or it may do something
else.
The qbufcall() function is tailored to be used with the enhanced
STREAMS framework interface, which is based on the concept of perime‐
ters. (See mt-streams(9F).) qbufcall() schedules the specified function
to execute after entering the perimeters associated with the queue
passed in as the first parameter to qbufcall(). All outstanding time‐
outs and bufcalls must be cancelled (using, respectively, quntime‐
out(9F) and qunbufcall(9F)) before a driver close routine can block and
before the close routine calls qprocsoff(9F).
qprocson(9F) must be called before calling either qbufcall() or qtime‐
out(9F).
RETURN VALUES
If successful, the qbufcall() function returns a qbufcall ID that can
be used in a call to qunbufcall(9F) to cancel the request. If the qbuf‐
call() scheduling fails, func is never called and 0 is returned.
CONTEXT
The qbufcall() function can be called from user, interrupt, or kernel
context.
SEE ALSO
allocb(9F), mt-streams(9F), qprocson(9F), qtimeout(9F), qunbufcall(9F),
quntimeout(9F)
Writing Device Drivers in Oracle Solaris 11.4
STREAMS Programming Guide
WARNINGS
Even when func is called by qbufcall(), allocb(9F) can fail if another
module or driver had allocated the memory before func was able to call
allocb(9F).
Oracle Solaris 11.4 16 Jan 2006 qbufcall(9F)