Kernel Functions for Drivers getrbuf(9F)
NAME
getrbuf - get a raw buffer header
SYNOPSIS
#include
#include
#include
struct buf *getrbuf(int sleepflag);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
sleepflag Indicates whether driver should sleep for free space.DESCRIPTION
The getrbuf() function allocates the space for a buffer
header to the caller. It is used in cases where a blockdriver is performing raw (character interface) I/O and needs to set up a buffer header that is not associated with the buffer cache.
The getrbuf() function calls kmem_alloc(9F) to perform the
memory allocation. kmem_alloc()requires the information
included in the sleepflag argument. If sleepflag is set toKM_SLEEP, the driver may sleep until the space is freed up.
If sleepflag is set to KM_NOSLEEP, the driver will not
sleep. In either case, a pointer to the allocated space is returned or NULL to indicate that no space was available.RETURN VALUES
The getrbuf() function returns a pointer to the allocated
buffer header, or NULL if no space is available.CONTEXT
The getrbuf() function can be called from user, interrupt,
or kernel context. (Drivers must not allow getrbuf() to
sleep if called from an interrupt routine.)SEE ALSO
bioinit(9F), freerbuf(9F), kmem_alloc(9F), kmem_free(9F)
Writing Device DriversSunOS 5.11 Last change: 16 Jan 2006 1