getrbuf() allocates the space for a buffer header to the caller. It is used in cases where a block driver is performing raw (character interface) I/O and needs to set up a buffer
header that is not associated with the buffer cache.
getrbuf() calls kmem_alloc(9F) to perform the memory allocation.
kmem_alloc()requires the information included in the sleepflag argument. If sleepflag is set to KM_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.
|