BUF_LOCK(9r)BUF_LOCK(9r)NAMEBUF_LOCK - General: Locks the specified I/O buffer
SYNOPSIS
void BUF_LOCK(
struct buf *bp );
ARGUMENTS
Specifies a pointer to a buf structure.
DESCRIPTION
The BUF_LOCK routine locks the specified I/O buffer. The routine masks
all disk and tape controller interrupts (by calling the splbio rou‐
tine). It sets the mutual exclusion buffer lock member, b_lock, of the
specified buf structure pointer.
The BUF_LOCK routine then sets the b_flags member of the specified buf
structure pointer to B_BUSY to indicate that this buffer is being used.
Finally, BUF_LOCK resets the CPU priority level (by calling the splx
routine).
NOTES
You should design in your kernel modules to hold the I/O buffer lock
for as short a period of time as possible to allow maximum concurrency.
You should also release the I/O buffer lock by calling the BUF_UNLOCK
routine before returning from the module's entry point.
RETURN VALUES
None
SEE ALSO
Routines: BUF_UNLOCK(9r)BUF_LOCK(9r)